【问题标题】:Php Array element as Object key iterator作为对象键迭代器的 PHP 数组元素
【发布时间】:2020-11-08 01:49:07
【问题描述】:

我有一个包含以下元素的数组: $arr = ['N','P','K','Ca','Mg','S', 'Zn', 'B','Cu','Fe','Mn','Mo'];

如何将数组元素用作对象键以便仅获取特定键的值:

object(stdClass)[727]
      public 'id' => int 1
      public 'name' => string 'John Doe' (length=8)
      public 'fname' => string 'HOUSE' (length=5)
      public 'bname' => string 'BLOCK 9' (length=7)
      public 'hectares' => float 7.2
      public 'cname' => string 'Vitis vinifera' (length=14)
      public 'delivery' => string '2210.0000' (length=9)
      public 'view_application' => int 1
      public 'view_schedule' => int 1
      public 'edit_schedule' => int 0
      public 'updated_at' => string '2020-07-17 20:03:51' (length=19)
      public 'N' => string '4.9000' (length=6)
      public 'P' => string '1.1000' (length=6)
      public 'K' => string '6.0000' (length=6)
      public 'Ca' => string '5.4000' (length=6)
      public 'Mg' => string '0.8000' (length=6)
      public 'S' => string '0.0000' (length=6)
      public 'Zn' => string '0.0210' (length=6)
      public 'B' => string '0.0071' (length=6)
      public 'Cu' => string '0.0280' (length=6)
      public 'Fe' => string '0.0420' (length=6)
      public 'Mn' => string '0.0220' (length=6)
      public 'Mo' => string '0.0000' (length=6)

我试过用这个:

@for ($i = 0; $i < count($arr); $i++)
   $object->$arr[$i];
@endfor

但这给出了一个错误Array to string conversion

另一种方法是使用$newarr = (array) $object; 将对象转换为数组 然后使用$object[''.arr[$i].''];进行迭代

但这在我的情况下不起作用,因为我已经使用该对象完成了我的大部分项目。 有没有办法使用数组元素作为对象键而不将对象转换为数组?

【问题讨论】:

    标签: php arrays laravel object key


    【解决方案1】:

    你需要让它识别第二部分是一个元素的名字,所以把它封装在大括号里……

    $object->{$arr[$i]};
    

    【讨论】:

    • 太棒了!而已。谢谢你。你找到了我没有找到的重复项吗?如果您在 24 小时内未找到重复项,我会将您的答案标记为解决方案。花括号对键有什么作用?我知道这是初始化对象的标志。
    • 我不能再等了。标记。
    猜你喜欢
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多