如何从多维数组中获取键的两个值?

时间:2017-03-21 11:12:38

标签: php arrays multidimensional-array

我想从我的数组中获取键的值:

array(2) {
  [0]=>
  array(14) {
    ["id"]=>
    string(2) "64"
    ["name"]=>
    string(9) "Freddy"
    ["firstname"]=>
    string(7) "Lang"
  }
  [1]=>
  array(14) {
    ["id"]=>
    string(2) "77"
    ["name"]=>
    string(6) "Samual"
    ["firstname"]=>
    string(5) "Johnson"

  }
}

$id = array_column($array, 'id');
$firstname = array_column($array, 'firstname');
$name = array_column($array, 'name');
echo "<select>";
  echo implode('<option value ="'.$id.'"'>'.$firstname.' '.$name.'</option>); 
echo "</select>";

但是我得到了一个空白页面。

2 个答案:

答案 0 :(得分:2)

在这种情况下使用implode不是探索方式:

使用foreach:

echo '<select>';
foreach ($array as $key => $value) {
    echo '<option value ="'.$value['id'].'">'.$value['firstname'].' '.$value['name'].'</option>';
}
echo '</select>';

答案 1 :(得分:1)

您可以使用array_map将输入数组转换为<option>然后implode所有的html代码,只使用一个语句:

echo "<select>" . implode('', array_map(function($row) { 
     return '<option value="'.$row['id'].'">'. $row['firstname'] .' '. $row['name'].'</option>';
 }, $array )) . "</select>";