简体   繁体   English

从PHP中的另一个数组中提取一个数组

[英]Extracting an array from another array in PHP

I have the following array (contents retrieved from a DB): 我有以下数组(从数据库检索的内容):

array (size=4)
  0 => 
    array (size=2)
      'number' => string 'one' (length=3)
      'name' => string 'Billy' (length=5)
  1 => 
    array (size=2)
      'number' => string 'two' (length=3)
      'name' => string 'Mariah' (length=6)
  2 => 
    array (size=2)
      'number' => string 'three' (length=5)
      'name' => string 'Cindy' (length=5)
  3 => 
    array (size=2)
      'number' => string 'four' (length=4)
      'name' => string 'Daniel' (length=6)

I need to create an array as follows: 我需要创建一个数组,如下所示:

$info = array('one' => 'Billy', 'two' => 'Mariah', 'three' => 'Cindy', 'four' => 'Daniel');

I used a foreach loop to construct the desired array: 我使用了foreach循环来构造所需的数组:

$info = array();
foreach ($result as $row) {
    $info[] = array($row['number'] => $row['name']);
}

and a var_dump() gives me this instead: 而var_dump()却给了我这个:

array (size=4)
  0 => 
    array (size=1)
      'one' => string 'Billy' (length=5)
  1 => 
    array (size=1)
      'two' => string 'Mariah' (length=6)
  2 => 
    array (size=1)
      'three' => string 'Cindy' (length=5)
  3 => 
    array (size=1)
      'four' => string 'Daniel' (length=6)

How can I achieve the desired array in PHP? 如何在PHP中获得所需的数组? Thanks for your help in advance. 感谢您的帮助。

You were close. 你近了

$info = array();
foreach ($result as $row) {
    $info[$row['number']] =$row['name'];
}

With PHP >= 5.5.0 it's much easier: 使用PHP> = 5.5.0会容易得多:

$info = array_column($result, 'name', 'number');

Or use the PHP Implementation of array_column() 或使用array_column()PHP实现

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM