Tuşları PHP ile nasıl eklendiğini ile ilişkilendirilebilir bir dizi sipariş için bir yolu var mı?

2 Cevap php

Burada ne demek istediğimi bir örnek:

Ben bir dizi var:

array('type'=>'text', 
      'class'=>'input', 
      'name'=>'username', 
      'id'=>'username', 
      'value'=>'', 
      'size'=>'30', 
      'rows'=>'',
    'cols'=>'');

Sonra, bu nedenle gibi bunun üzerinden I döngü:

$input = '<input ';
    foreach($input_array as $key => $value) {
    	if(isset($key) && !empty($key)) {
    		$input .= $key . '="' . $value . '" ';
    	}	
    }	
$input .= '/>';

Ben dönmek için umuyorum:

<input type="text" class="input" name="username" id="username" size="30" />

Ben boşuna PHP'nin sıralama () işlevleri kullanarak denedim. Ben anlamaya en yakın ben usort gibi bir şey () kullanmanız gerekir, ama ben istediğimi yapacağım bir işlevi yazmak nasıl sergiyi sorun yaşıyorum olduğunu.

Bu konuyla ilgili herhangi bir tavsiye büyük takdir ve okuma için çok teşekkürler edilir.

2 Cevap

Zaten bu sırayla olmalıdır. Elemanları bunları takılı hangi sırayla olacak şekilde PHP dizileri sıralanır.

Ayrıca $value değil $key üzerine empty() çağırmanız gerekir; $key her zaman boş olmayan olmalıdır. Ayrıca isset() ihtiyacı yanı sıra yok empty(). Bunun dışında sizin kod çalışıyor ve istenilen çıktıyı üretir.

Bir dize '0 'true dönecektir, çünkü ben de empty() kullanarak dikkatli olacaktır. Bu göz ardı edileceği, geçerli bir parametre değeri olabilir. Bunu yerine bunu kontrol edebilir strlen($value) > 0.

PHP'nin interaktif komut ile aşağıdaki kodu çalıştırarak sadece Tom Haigh 'ifadesini doğruluyor

It should already be in that order. PHP arrays are sorted so the elements will be in the order in which you inserted them.

<?php
$a = array(
    'type'=>'text',
    'class'=>'input',
    'name'=>'username',
    'id'=>'username',
    'value'=>'',
    'size'=>'30',
    'rows'=>'',
    'cols'=>''
);
print_r($a);
/* 
Array
(
    [type] => text
    [class] => input
    [name] => username
    [id] => username
    [value] =>
    [size] => 30
    [rows] =>
    [cols] =>
) 
*/
foreach ($a as $k => $v) {
    echo $k . ' => ' . $v . "\n";
}
/* 
type => text
class => input
name => username
id => username
value =>
size => 30
rows =>
cols =>
*/

Bu tam olarak kullandığınız kodu ve happening $input_array yaratma arasındaki ve döngü bir şey olduğundan emin misin?

EDIT:

Sadece basit ve belki de aptal soru: $input olarak sonuç dizesi gibi görünüyor nasıl kontrol edebilirim? Eğer mesela bunu eğer Kundakçı bu irade özelliklerini yeniden düzenleyebilirsiniz anlamına gelir kaynağı (ve potansiyel Javascript manipülasyon) oluşturulan DOM ağacını görüntüler gibi Kundakçı HTML navigator elemanlarının 'sipariş HTML kaynağı gerçek sırasını maç olmayacak ...