0

PHP配列について質問があります。$data のような配列があります。

$data=array(array('a'=>'1','b'=>'2','c'=>'3','d'=>'4'),array('a'=>'5','b'=>'6','c'=>'7','d'=>'8'),array('a'=>'9','b'=>'10','c'=>'11','d'=>'12'));

a,c,d 要素だけを取得して、$data1 のような別の多次元配列を作成したい。

$data1=array(
        array('a'=>'1','c'=>'3','d'=>'4'),
            array('a'=>'5','c'=>'7','d'=>'8'),
            array('a'=>'9','c'=>'11','d'=>'12')         
        );

次のステップとして、$data1 配列を d 要素の最初の値で、次に c 要素の値で、最後に a 要素でソートし、$data2 のような配列を取得したいと考えました。

$data2=array(           
            array('a'=>'9','c'=>'11','d'=>'12')
            array('a'=>'5','c'=>'7','d'=>'8'),
            array('a'=>'1','c'=>'3','d'=>'4')
            );

各ステップの答えを少し説明する必要があります。私はここでこの問題に行き詰まっています。私は助けが欲しい..そして、$dataから$data1配列を簡単に取得するために利用できるphp配列関数はありますか?

4

1 に答える 1

1

これはあなたの場合に機能します..

$data=array(array('a'=>'1','b'=>'2','c'=>'3','d'=>'4'),array('a'=>'5','b'=>'6','c'=>'7','d'=>'8'),array('a'=>'9','b'=>'10','c'=>'11','d'=>'12'));
$data1 = array();

//getting data1 by removing the b's 

foreach($data as $d){
   while(list($k,$v) = each($d)){
    if($k == "b"){
        unset($d[$k]);
    }
}
array_push($data1, $d);
}

//Sorting the arrays
foreach($data1 as $key => $value){
  $ds[$key] = $value["d"];
  $cs[$key] = $value["c"];
  $as[$key] = $value["a"];
}

array_multisort($ds, SORT_DESC, $cs, SORT_DESC, $as, SORT_DESC, $data1);
print_r($data1);

これは印刷されます:

Array
(
[0] => Array
    (
        [a] => 9
        [c] => 11
        [d] => 12
    )

[1] => Array
    (
        [a] => 5
        [c] => 7
        [d] => 8
    )

[2] => Array
    (
        [a] => 1
        [c] => 3
        [d] => 4
    )

)

ディンス

于 2013-03-31T02:22:33.287 に答える