【问题标题】:Undefined Offset multidimensional array Laravel未定义的偏移量多维数组 Laravel
【发布时间】:2014-09-16 09:54:02
【问题描述】:

我就是不能让这个数组玩得很好。 我正在使用 Laravel 4.2 并抛出:ErrorException (E_UNKNOWN) Undefined offset: 1

$tags = Test\Zero::get_tags();

dd ($tags);

    array (size=2)
  0 => 
    array (size=4)
      'guid' => string '-a035-4742-bb65-c44' (length=36)
      'name' => string 'tagtest1' (length=9)
      'updateSequenceNum' => int 14
      'parentGuid' => null
  1 => 
    array (size=4)
      'guid' => string '-905e-466e-9e91-33ddggg4' (length=36)
      'name' => string 'testtag2' (length=11)
      'updateSequenceNum' => int 19
      'parentGuid' => null

$tags = array_dot(`$tags);


array (size=8)
  '0.guid' => string '-a035-4742-bb65-c44' (length=36)
  '0.name' => string 'tagtest1' (length=9)
  '0.updateSequenceNum' => int 14
  '0.parentGuid' => null
  '1.guid' => string '-905e-466e-9e91-33ddggg4' (length=36)
  '1.name' => string 'testtag2' (length=11)
  '1.updateSequenceNum' => int 19
  '1.parentGuid' => null


$name = array_fetch($tags, '1.name');
echo $name;

如何循环显示所有带有键 'name' 的值? 我尝试的一切都给出了 ErrorException (E_UNKNOWN) Undefined offset:

任何帮助将不胜感激。

【问题讨论】:

  • 一个像foreach ($tags as $tag) { echo $tag['name']; }这样的简单循环就可以了——如果你有PHP5.5,你也可以使用$names = array_column($tags, 'name');来检索所有名字的数组us1.php.net/manual/en/function.array-column.php这就是你要找的东西?
  • 多么奇怪 - 以为已经尝试过了 - 它有效 - 谢谢!!

标签: php arrays laravel


【解决方案1】:

虽然@MichaelBerkowski 是正确的,但如果您确实想使用 Laravel 数组帮助器来做到这一点,那就是:

$names = array_fetch($tags, 'name');

这会给你一个数组,而不是一个字符串(所以在你的例子中使用 echo $name 会给你一个 Array to string conversion 错误)。

当您有一个多维关联数组时,您可能会混淆您尝试使用的语法,如 Laravel 文档中用于 array_fetch 的:http://laravel.com/docs/helpers

顺便说一句,如果$tags 是一个集合,你可以这样做:$tags->lists('name');

【讨论】:

  • 是的,我最初确实将数组转换为字符串错误 - 集合类看起来很有用 - 感谢您的建议
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 2014-06-25
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 2021-07-06
  • 1970-01-01
相关资源
最近更新 更多