【问题标题】:Array_column with index instead of associative key带有索引而不是关联键的 Array_column
【发布时间】:2016-03-15 06:27:24
【问题描述】:

究竟如何应用 array_column 总是获取数组的第一列而不是按名称获取列?这是:

array_column($array,[0])

而不是

array_column($array,"key");

【问题讨论】:

  • array_column($array, array_keys($array)[0]);
  • 对我不起作用。它接缝 array_column 渴望和索引名称。

标签: php


【解决方案1】:

您不能使用 array_column 函数执行此操作,除非您提前确定每个数组的第一个元素的键是什么。

您需要使用foreach() 执行此操作并使用reset() 获取第一个元素。

【讨论】:

  • foreach 是这个特定问题的唯一解决方案。
【解决方案2】:

试试

array_column($array, array_shift(array_keys($array)));

来自Return first key of associative array in PHP

希望能帮上忙! :)

【讨论】:

  • 对我不起作用。它接缝 array_column 渴望和索引名称。
【解决方案3】:

虽然array_column() 允许您使用整数来定位列,但它必须是现有的整数键。否则,您将需要确定第一个子数组的第一个键才能动态访问该列。

代码:(Demo)

$array = [
    ["foo" => "bar1", "hey" => "now"],
    ["foo" => "bar2", "hey" => "what"],
    [0 => "zero", 1 => "one"]
];

var_export(array_column($array, 'foo'));  // get the column by name
echo "\n---\n";
var_export(array_column($array, 0));  // don't need to be a string
echo "\n---\n";
var_export(array_column($array, key(current($array))));  // access the first subarray, access its key
echo "\n---\n";
var_export(array_column($array, array_shift(array_keys($array))));  // this generates a Notice, and damages the array

输出:

array (
  0 => 'bar1',
  1 => 'bar2',
)
---
array (
  0 => 'zero',
)
---
array (
  0 => 'bar1',
  1 => 'bar2',
)
---

Notice: Only variables should be passed by reference in /in/hH79U on line 14
array (
  0 => 'zero',
)

【讨论】:

    猜你喜欢
    • 2016-09-13
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2014-10-14
    • 2021-07-08
    • 1970-01-01
    相关资源
    最近更新 更多