Tuşları ile ilişkilendirilebilir bir dizi patlamaya hızlı yolu

5 Cevap php

Ben bir dizeye bir ilişkisel dizi açmak için hızlı bir yol arıyorum. Ben xhtml linkleri veya '&' aksi için '&' kullanmak, böylece tipik bir yapı URL sorgu dizesi gibi ama özelleştirilebilir ayırıcılar ile olacak.

Benim ilk eğim foreach kullanmak için ama benim yöntem tek isteği birçok kez denilebilir beri çok yavaş olabilir korkuyorum.

<?php
$Amp = $IsXhtml ? '&amp;' : '&';
$Parameters = array('Action' => 'ShowList', 'Page' => '2');
$QueryString = '';
foreach ($Parameters as $Key => $Value)
        $QueryString .= $Amp . $Key . '=' . $Value;

Daha hızlı bir yolu var mı?

5 Cevap

Bir kenara, ben bir ilişkisel dizi patlamaya iyi yolu bulmak ama vb kendi Seperatörler kullanarak arama oldu ..

Yani bana sonra bir HTML etiketine uygulanan olabilir parametrelerin bir liste halinde bir ilişkisel dizi katılmasına izin PHP'nin array_walk () işlevini kullanarak bunu yaptı ....

// Create Params Array
$p = Array("id"=>"blar","class"=>"myclass","onclick"=>"myJavascriptFunc()");

// Join Params
array_walk($p, create_function('&$i,$k','$i=" $k=\"$i\"";'));
$p_string = implode($p,"");

// Now use $p_string for your html tag

Obviously, you could stick that in your own function somehow but it gives you an idea of how you can join an associative array using your own method. Hope that helps someone :)

Bu Aklıma en temel sürüm:

public function implode_key($glue = "", $pieces = array())
{
    $keys = array_keys($pieces);
    return implode($glue, $keys);
}

Bu kodu çalıştırdığınızda bir performans isabet görüyoruz? Eğer değilseniz, bu bağlantıyı kontrol etmelisiniz ve bu gerçekten döngüleri yanan değer bir mesele olmadığına karar verin.

Hardware is Cheap, Programmers are Expensive

Tek yönlü print_r(array, true) kullanıyor ve dizi dize temsilini dönecektir