отсортировать массив и удалить его часть потом - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть 2d массив с именем $myarray, и я использую var_dump($myarray), это дает мне следующее:

 array(4) { 
    [0]=> array(3) { 
        [0]=> string(11) "PAY000003RV" 
        [1]=> string(3) "EUR" 
        [2] => string(9) "43,543.23"  
    } 
    [1]=> array(3) { 
        [0]=> string(11) "PAY000002PE" 
        [1]=> string  (3) "USD" 
        [2]=> string(9) "13,432.34" 
    } [2]=> array(3) { 
        [0]=> string(11) "PAY000001YB" 
        [1] => string(3) "GBP" 
        [2]=> string(8) "3,432.21" 
    } [3]=> array(3) { 
        [0]=> string(11) "PAY000004TS" 
        [1]=> string(3) "CAD" 
        [2]=> string(8) "2,321.34" 
    } 
} 

Я хочу получить следующий вывод:

 GBP 3,432.21
 USD 13,432.34
 EUR 43,543.23
 CAD 2,321.34

, поэтому я пытаюсь использовать substr($myarray[0][0], 8, 1), substr($myarray[1][0], 8, 1), substr($myarray[2][0], 8, 1), substr($myarray[3][0], 8, 1), чтобы получить значение 3,2,1,4, чтобы использовать его для сортировки массива в указанном выше порядке, а затем удалить $myarray[0][0], $myarray[1][0], $myarray[2][0], $myarray[3][0], которые являются элементами "PAY0000 .." в каждой строке, но я не уверен, как именно это реализовать, какие-нибудь эксперты могли бы помочь мне с этим? Любая помощь будет оценена!

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Допустим, ваш массив присвоен переменной $foo

$values = array();

foreach ( $foo as $bar ) {  
    foreach ( $bar as $val ) {  
        $values[] = $val[1] . ' ' . $val[2];
    }  
} 

Тогда у вас будет массив $values с нужными вам значениями.

0 голосов
/ 04 февраля 2012
//Extract sort key
$tmp=array();
foreach($myarray as $m) $tmp[$m[0]]=array($m[1],$m[2]);

//Sort array
ksort($tmp);

//Create output
foreach($tmp as $m) echo $m[0].' '.$m[1];

Некоторые комментарии:

  • Вы можете сортировать по PAY00000nXY, не извлекая n
  • Код предполагает, что массив вам нужен больше, чем просто распечатывать, иначеможет быть неэффективным
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...