【发布时间】:2018-06-06 15:09:02
【问题描述】:
我知道这很简单,但我无法理解它......
我有 2 个数组。两者都是从数据库查找中填充的。
数组 1
Array (
[sailID] => 7
[sailTag] => 100004
[assigneduser] => Jason Ellmers
[assigneddate] => 2018-05-30 17:48:57
[cutuser] => Jason Ellmers
[cutdate] => 2018-05-30 20:31:23
[stickuser] => Jason Ellmers
[stickdate] => 2018-05-30 20:38:24
[corneruser] => Jason Ellmers
[cornerdate] => 2018-05-30 20:38:54
[finishuser] => Jason Ellmers
[finishdate] => 2018-05-30 20:39:53
[checkuser] =>
[checkdate] => 0000-00-00 00:00:00
[DesignRef] => 420abcdefg
[OrderingLoft] => 1
[ClassRef] => 1
[ClothType] => Bainbridge
[ClothColour] => White
[ClothWeight] => 12oz
[SailNo] => GB342398 )
数组 2
Array (
[0] => Array (
[id] => 1
[name] => 420 )
[1] => Array (
[id] => 2
[name] => J24 ) )
我所做的是能够回显到屏幕 $array1['ClassRef 是在 Array2 中查找 ID'并显示来自 Array2 的名称]
所以对于上面的例子,Echo 是 '420'
我想我可以使用 foreach 或 while 循环来做到这一点,但这似乎有点麻烦???
【问题讨论】:
-
格式化您的数组以便我们可以读取它们,最好使用 var_export 代替。这样我们就可以复制粘贴你的数组了。
-
使用
array_column($array2, "name", "id");转换你的array2,然后它会被id索引。 -
所以我想回显 $array1['ClassRef'],但我希望它输出 '420'(来自数组 2)而不仅仅是 '1'
-
谢谢@nigelren,好的,我能得到代码就这么短吗?
<?php $class= array_column($classes, 'name', 'id'); echo $class[$saildata['ClassRef']];?> -
为什么不
foreach ($classes as $a) {if ($a["id"] === $saildata["ClassRef"]) {echo $a["name"];}}