PHP yerleşik bir sortByKey () işlevi var mı?

2 Cevap php

Say, $ dizi anahtar "pos" ile birden fazla alt-diziler içerir,

$arr = sortByKey($arr,'pos');

Bundan sonra küçük "Poz" değer ile alt-dizi böylece ilk sipariş ve olacaktır.

EDIT

$sub1 = array('pos' => 2);
$sub2 = array('pos' => 1);
$arr = array($sub1,$sub2);
$arr = sortByKey($arr,'pos');

Bu fonksiyonun sonra, $ dizi array ($ sub2, $ sub1) olacak

2 Cevap

ksort fonksiyonuna bakın.

Burada manual fonksiyonu geliyor.

Özür de ben size daha fazla uasort sizin elemanların her karşılaştırmak ve bunları sıralamak için bir işlev tanımlamak mümkün olacaktır bakarak ccase düşünüyorum

// Array to be sorted

print_r($array);

// Sort and print the resulting array
uasort($array, create_function('$a,$b', 'return $a[\'pos\'] == $b[\'pos\'] ? 0 : (($a[\'pos\'] < $b[\'pos\']) ? -1 : 1);'));
print_r($array);

çift ​​hakkında emin değilim test edilmesi gerekiyor? operatör ...

Tezahürat

Sana bir işlev yazalım. Onun test değil.

function subarray_sort($array, $subkey) {
  $sortarray=array();
  foreach($array as $item) {
      $sortarray[]=$item[$subkey];
  }

  array_multisort($sortarray, $array);
}