2016-03-19 1 views
0

PHPで2次元配列を持っています。最初のインデックスはインデックス内の項目の名前です。他のインデックスはそのアイテムの他の情報である。最初の索引には重複した名前がありますが、2番目の索引には重複しない名前があります。2次元配列からデータを取り込み、最初のインデックスの要素を繰り返し検索し、PHPの別のインデックスに関連する要素をグループ化するには

私がやりたいことは、配列をテーブルに追加することですが、各名前を一度表示し、2番目のインデックスのすべての一意のデータをドロップダウンリスト(selectタグ)に表示させるだけです。

だから私は持っている:

$array[0][0] = foo 
$array[0][1] = foo 
$array[0][2] = foo 

$array[0][3] = bar 
$array[0][4] = bar 

$array[1][0] = 1 
$array[1][1] = 2 
$array[1][2] = 3 

$array[1][3] = 4 
$array[1][4] = 5 

を私がしたいことは

foo | (select from 1-3) 
bar | (select from 4-5) 

答えて

0
<?php error_reporting(E_ALL); 

$array[0][0] = 'foo'; 
$array[0][1] = 'foo'; 
$array[0][2] = 'foo'; 

$array[0][3] = 'bar'; 
$array[0][4] = 'bar'; 

$array[1][0] = 1; 
$array[1][1] = 2; 
$array[1][2] = 3; 

$array[1][3] = 4; 
$array[1][4] = 5; 

// get new array without duplicate values 
$uniqueValueArray = array_unique($array[0]); 

$result = []; 

foreach ($uniqueValueArray as $value) 
{ 
    $row = ['value' => $value, 'ids' => []]; 

    // get keys form value array for given value 
    $valueKeys = array_keys($array[0], $value); 

    // find id form ids array for this value 
    foreach ($valueKeys as $key) 
    { 
     $row['ids'][] = $array[1][$key]; 
    } 

    $result[] = $row; 
} 

var_dump($result); 
とテーブルです
関連する問題