gpt4 book ai didi

PHP 数组 - 一个 'set where key=?' 类型的函数?

转载 作者:可可西里 更新时间:2023-10-31 23:24:52 25 4
gpt4 key购买 nike

是否有内置的 php 函数允许我根据匹配键设置数组的值?也许我最近写了太多 SQL,但我希望我可以执行以下逻辑而无需像下面这样写出嵌套的 foreach 数组:

foreach($array1 AS $k1 => $a1) {
foreach($array2 AS $a2) {
if($a1['id'] == $a2['id']) {
$array[$k1]['new_key'] = $a2['value'];
}
}
}

有更好的方法吗?在 SQL 逻辑中,它将是“SET array1.new_key = x WHERE array1.id = array2.id”。再一次,我最近写了太多 SQL :S

最佳答案

当我需要这样做时,我首先使用一个函数通过 id 映射一个数组的值:

function convertArrayToMap(&$list, $attribute='id') {
$result = array();
foreach ($list as &$item) {
if (is_array($item) && array_key_exists($attribute, $item)) {
$result[$item[$attribute]] = &$item;
}
}
return $result;
}

$map = convertArrayToMap($array1);

然后遍历另一个数组并赋值:

foreach ($array2 AS $a2) {
$id = $a2['id'];
$map[$id]['new_key'] = $a2['value'];
}

即使是一次pass,整体循环也比较少,方便以后进一步操作。

关于PHP 数组 - 一个 'set where key=?' 类型的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7612754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com