【问题标题】:Create specific array from a given array从给定数组创建特定数组
【发布时间】:2016-11-26 11:48:41
【问题描述】:

您好,我需要帮助从这个数组中提取一个数组:

array (size=3)
  0 => 
    array (size=2)
      'id' => string '1' (length=1)
      'name' => string 'Casablanca' (length=10)
  1 => 
    array (size=2)
      'id' => string '2' (length=1)
      'name' => string 'El Jadida' (length=9)
  2 => 
    array (size=2)
      'id' => string '3' (length=1)
      'name' => string 'Fes' (length=3)

我正在使用刀片表单选择:

echo Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S');

所以要使用我的数组,我必须具有与 laravel 相同的形式:

array(
    '1' => 'Casablanca',
    '2' => 'El Jadida',
    '3' => 'Fes'
)

【问题讨论】:

  • 一个简单的循环应该可以完成这项工作 - 你在哪一部分卡住了?

标签: php arrays laravel blade


【解决方案1】:

我不知道框架部分,但这应该可以解决问题:

// oldA = your array from the question
$newA = array();
foreach($oldA as $v){
    $newA[$v['id']] = $v['name'];
}

输出:

Array
(
    [1] => Casablanca
    [2] => El Jadida
    [3] => Fes
)

查看代码here

【讨论】:

    【解决方案2】:

    使用循环非常好,但如果你想在一行代码中完成,你可以使用 array_combine() 和 array_column():

    $arr = array_combine(array_column($arr, 'id'), array_column($arr, 'name'));
    

    【讨论】:

    • array_column 需要 PHP 5.5+
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多