2010-09-20 11 views
0

Je suis confronté à un problème dans le tri de ce tableau 2-d sur la base de la clé par exemple (33 dans l'exemple de code) donc la sortie ressemblera 7,7,28,33, 35,38.Voici l'exemple de code.problème dans le tri tri 2d tableau tri

merci à l'avance

<?php 
$arr=array (0 => array (33 => 'SY2',), 1 => array (38 => 'PR25',), 2 => array (7 => 'SK22',), 3 => array (7 => 'BT1',), 4 => array (28 => 'WN8',), 5 => array (35 => 'ST21',)); 
print_r($arr); 
$arrnew=array(); 
$str=0; 
for($j=0;$j<count($arr);$j++){ 
foreach($arr[$j] as $key=>$val){ 
    if($str == 0) 
    $str=$arrnew[$key]; 
    if($str < $arrnew[$key]) 

    //$arrnew[$key]=$val; 
    //echo $key."<BR>"; 
} 
} 

print_r($arrnew); 
+0

double possible de [manière la plus effecient commander un tableau par des éléments sous?] (Http://stackoverflow.com/questions/3691355/most-effecient-way-to-order-an-array-by -sous-éléments) –

Répondre

0
$arr=array (0 => array (33 => 'SY2',), 1 => array (38 => 'PR25',), 2 => array (7 => 'SK22',), 3 => array (7 => 'BT1',), 4 => array (28 => 'WN8',), 5 => array (35 => 'ST21',)); 
foreach($arr as $key => $val) 
{ 
foreach ($val as $key2 => $val2) 
{ 
    $sort[$key] = $key2; 
} 
} 
array_multisort($sort, SORT_ASC, $arr); 
print_r($arr); 
0

Si chaque sous-réseau ne dispose que d'une valeur paire de clés, vous pouvez créer un nouveau tableau de celui-ci:

// copy data from $arr to $newArray: 
$newArray = array(); 
foreach($arr as $v) 
    $newArray[array_keys($v)[0]] = $v[0]; 

// sort newArray: 
ksort($newArray) 

// if you want to, you can copy it back: 
$arr = array(); 
foreach($newArray as $k => $v) 
    array_push($arr, array($k, $v)); 

c'est tout. Prendre plaisir!