使这个数组成为多维度的最佳方法

时间:2018-04-17 20:13:24

标签: php

我的数组如下:

     $options = array (
    'af' => 'Afrikaans',
    'af_NA' => 'Afrikaans (Namibië)',
    'af_ZA' => 'Afrikaans (Suid-Afrika)',
     );

我想为国家/地区添加密钥,例如:

 $options = array (

       [0]=> array ( 
                  'id' => 'af'
                  'name' => 'Afrikaans',
               ),

       [1]=> array ( 
                  'id' => 'af_NA'
                  'name' => 'Afrikaans (Namibie)',
               ),

2 个答案:

答案 0 :(得分:1)

制作一个空数组,然后在正确映射新值后将新数组推到其上。

$new = array();
foreach ($options as $key => $value) {
    array_push($new, array("id" => $key, "name" => $value));
}
$options = $new;

答案 1 :(得分:0)

您可以使用带lambda的地图:

$result = array_map(function ($id, $name) { return array('id' => $id,'name'  => $name); }, array_keys($options), $options);
var_dump($result);

输出:

array (size=3)
  0 => 
     array (size=2)
       'id' => string 'af' (length=2)
       'name' => string 'Afrikaans' (length=9)
  1 => 
      array (size=2)
        'id' => string 'af_NA' (length=5)
        'name' => string 'Afrikaans (Namibië)' (length=20)
   2 => 
      array (size=2)
        'id' => string 'af_ZA' (length=5)
        'name' => string 'Afrikaans (Suid-Afrika)' (length=23)