【问题标题】:Laravel, PHP, show value where 2 id matchLaravel,PHP,显示 2 个 id 匹配的值
【发布时间】:2019-07-22 13:30:08
【问题描述】:

从控制器,我将 1 个 int 和 2 个数组以及 1 个 var 传递给视图,int 是 $i = 0;,2 个数组是:

dd($myArray);
/*
array:3 [▼
  0 => array:3 [▼
    0 => 2
    1 => 0
    2 => "2019-07-21 23:59:59"
  ]
  1 => array:3 [▼
    0 => 3
    1 => 2
    2 => "2019-07-21 23:59:59"
  ]
  2 => array:3 [▼
    0 => 1
    1 => 1
    2 => "2019-07-21 23:59:59"
  ]
]

*/

还有:

$new_functions = NewFunctions::getAllFunctions();
dd($new_functions);
/*
Collection {#771 ▼
  #items: array:12 [▼
    0 => {#1047 ▼
      +"id": 2
      +"name": "demografico"
      +"dict_key": "demographic"
      +"component": "Demographic"
      +"country_id": null
      +"created_at": null
      +"updated_at": null
    }
    1 => {#1041 ▶}
    2 => {#1040 ▶}
    etc..., like more 10 objects.
*/

在视图中,我有这段代码来“组合”这两个数组:

@foreach($new_functions as $key => $item)
    @if(in_array($item->id, array_column($myArray, 0)))
        <input type="number" id="{!! $item->id !!}" name="function_count[{{$item->id}}]" value="{{ $myArray[$i++][1] }}">
    @else
        <input type="number" id="{!! $item->id !!}" name="function_count[{{$item->id}}]" value="0">
    @endif
@endforeach

我想要做的是:“如果 $item->id (可能是任何 Collection 对象的 id)位于 $myArray 的列 '0' 中,则放入视图的输入, $myArray 的第二个位置的值,如果不存在,则输入 0。”

在我的本地工作中还可以,但在其他环境中则无法正常工作,并且它会将值按不同的顺序排列。

当我的项目的 id 是 $myArray 元素的第一列的值时,我如何在刀片视图中决定将 $myArray 的第 2 个位置的值?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我是在这个帖子的帮助下完成的:

    PHP if in_array() how to get the key as well?

    我需要的是使用:

    @if(false !== $key = array_search($item->id, array_column($myArray, 0)) )
    

    然后用$i摆脱那个静态循环

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2017-10-01
      • 2020-08-16
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      相关资源
      最近更新 更多