2017-03-21 68 views
0

我想从我的数组获得通过的关键值:如何通过多维数组中的键获取两个值?

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>"; 

,但我得到了一个空白页面的结果。

+0

您可以使用'foreach'来做到这一点,为什么你要这样做? – hassan

+0

你的'implode()'函数看起来不正确,你需要粘贴和数组。 – JustBaron

+0

@hassan我认为foreach需要更多的加载时间 – Jarla

回答

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>"; 
+0

是这比使用foreach更好吗? – Jarla

+0

@Jarla别慌! foreach是好的,友好的:) – hassan

+0

我更喜欢功能性的方法,但它取决于你的口味。 –

2

使用破灭是不是在这方面的探针的方法:

使用foreach:

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

好的,如果这是最好的方法,我使用foreach :) – Jarla

+0

我不同意你的说法:'在这种情况下使用implode不是正确的方法:';如果使用正确的方法,“implode”很好。无论如何,你的解决方案是OK :) –

+0

@ConstantinGALBENU问候,因为我说它不是**这种情况下的探索者方式**,并不意味着这是内爆不能做这样的任务 - *即使作为一项工作例如, - – hassan

相关问题