PHP数组 – ‘set where key =?’类型功能?
发布时间:2020-12-13 16:22:08 所属栏目:PHP教程 来源:网络整理
导读:是否有内置的php函数,允许我根据匹配的键设置数组的值?也许我最近写了太多的SQL,但我希望我可以执行以下逻辑而无需写出嵌套的foreach数组,如下所示: foreach($array1 AS $k1 = $a1) { foreach($array2 AS $a2) { if($a1['id'] == $a2['id']) { $array[$k1]
是否有内置的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']; } 即使是一次通过,这总体上也较少,并且它将来可以方便进一步操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |