在laravel中,我可以通过假设子表和父表这两个表之间存在关系来做到这一点。
我可以使用孩子访问多少次父母。
$ child-> parent-> id;
但是在纯PHP中我不知道它是如何工作的。到目前为止,我只尝试过
foreach ($shops as $shop) {
foreach ($shopAssistants as $shopAS) {
if($shopAS['shop_id'] != $shop['id']){
?>
<option id = "<?php echo $shop['id']; ?>"><?php echo $shop['shop_name']; ?>
</option>
}
答案 0 :(得分:0)
折叠数组之一
$shopIds = array_column($shops, 'id');
foreach ($shopAssistants as $shopAS) {
if(in_array($shopAS['shop_id'],$shopIds){
?>
<option id = "<?php echo $shop['id']; ?>"><?php echo $shop['shop_name']; ?>
</option>
}
Array列将从多维数组中仅返回单个列。所以如果你有
$shops = [
['id' => 1, 'name' => 'foo'],
['id' => 2, 'name' => 'foo'],
['id' => 3, 'name' => 'foo'],
]
使用array_column($shops, 'id')
并给出上面的示例,我希望以此作为结果
[1,2,3]
通过像这样减少数据量,您只需使用in_array
即可避免执行2次循环。
-注意-
如果shop是一个对象,则可以将其转换为一个数组,如下所示:
$shopIds = array_column((array)$shops, 'id');
假设属性id
是公共的。