2017-05-10 10 views
0

配列$ bobbyの中に以下の配列があります。これはidでソートされます。5つの変数から2つの変数へのPHP配列の簡略化

1 
    id="1" 
    color="blue" 
    size="7" 
    height="10" 
    beebop="z" 

2 
    id="2" 
    color="red" 
    size="64" 
    height="52" 
    beebop="y" 
3 
    id="3" 
    color="pink" 
    size="72" 
    height="39" 
    beebop="not_x" 

私は2つのだけの値、ID及び色が含ま簡略化された配列($bobby_simplified)を作成するPHP関数を作成する手間を有するですか?だから、新しい配列は次のようになります。

1 
    id="1" 
    color="blue" 
2 
    id="2" 
    color="red" 
3 
    id="3" 
    color="pink" 

また、その関数では、我々は、色の昇順で並べ替えることができますか?


私は次のことを試してみましたが、運と:

  foreach ($bobby AS $bobby_simplified) { 
       $id = $bobby_simplified['id']; 
       $color = $bobby_simplified['color']; 
      } 
+0

を仕分け追加私は新しいarray'を作成するためのPHP関数を作成することができます - はい。何を試しましたか? 「色を昇順で並べ替えることはできますか?」 - はい。 [this one](http://stackoverflow.com/questions/17364127/how-can-i-sort-arrays-and-data-in-php)のように、StackoverflowでPHPで配列をソートする方法に関する疑問がたくさんあります。 。 –

+0

ありがとうRobbie Averill。最初の部分で試した機能を追加しました。 – ian

答えて

1

あなたは部分配列の最初の2つの要素を取得するために、新しい配列、およびarray_slice()を取得するにはarray_map()機能を使用することができます。 live demoを確認してください。

$simplified = array_map(function($v){return array_slice($v, 0, 2, true);}, $array); 
+0

ありがとうKris Roofe:あなたのfxnでは、私は$ v = $ bobbyを私の関数に、$ array = $ bobby_simplified? – ian

+0

$ arrayあなたは単純化されていない配列です、array_map()funcitonの出力は単純化された配列です。 –

1

あなたは使って色のアルファベット順に配列をソートすることができます

usort($arr, function($a, $b) { return strcmp($a['color'], $b['color']); }); 
+0

あなたはOP質問を正しく読んでいますか?彼は配列を並べ替えるつもりはありません。 –

+1

彼の質問の一番下に彼は 'また、その関数で色を昇順で並べ替えることができますか? ' – Enstage

1

この

foreachの($ bobby_simplified AS $ボビー){
$ RES =のようなものを試してみてください配列( "id" => $ bobby_simplified ['id']、 "color" => $ bobby_simplified ['color']);
}
print_r($ res);

+1

' $ res'は継続的に上書きされますが、あなたはおそらく$ res [] ' – Enstage

+0

を申し訳ありません、もちろん$ res [] – enda

-1

既にテストされ、これを試してみてください、 `色

によって
$array = [1=>['id'=> '1', 'color'=> 'blue', 'size'=>'7', 'height'=>'10', 'beebop'=>'z'], 
      2=>['id'=> '2', 'color'=> 'red', 'size'=>'64', 'height'=>'52', 'beebop'=>'y'], 
      3=>['id'=> '3', 'color'=> 'pink', 'size'=>'72', 'height'=>'39', 'beebop'=>'not_x'], 
     ]; 

foreach($array as $arr){ 

     $arr = array_splice($arr,0,2); 
     print_r($arr); 

     $array2[] = $arr; 
} 
    echo "<br>"; 
    print_r($array2); 

    echo "<br>"; 



function sortBy($field, &$array, $direction = 'asc') 
{ 
    usort($array, create_function('$a, $b', ' 
     $a = $a["' . $field . '"]; 
     $b = $b["' . $field . '"]; 

     if ($a == $b) 
     { 
      return 0; 
     } 

     return ($a ' . ($direction == 'desc' ? '>' : '<') .' $b) ? -1 : 1; 
    ')); 

    return true; 
} 

sortBy('color', $array2, 'asc'); 
print_r($array2); 
関連する問題