PHP求助:如何将多维数组中指定ID的子数组移至顶部?
问题解决:将指定ID的数组行移至顶部
错误原因分析
你遇到的Trying to access array offset on value of type int警告,核心问题是foreach循环里的判断逻辑写错了:
在foreach($rows as $key => $val)中,$key是数组的索引值(比如0、1、2这类整数),而包含id字段的是当前遍历到的子数组$val,你误把$key当成子数组来访问['id'],导致类型错误。
修正后的代码
$x = 54; foreach($rows as $key => $val){ // 用$val['id']替代$key['id'] if($val['id'] == $x){ unset($rows[$key]); array_unshift($rows, $val); // 找到目标后跳出循环,避免多余遍历 break; } } // 验证结果 print_r($rows);
执行结果示例
修正后运行,数组会变成:
Array ( [0] => Array ( [id] => 54 [nick] => 5fb63a1a75171 ) [1] => Array ( [id] => 52 [nick] => 5fb63a1a8bcbf ) [2] => Array ( [id] => 59 [nick] => 5fb63a1a91e68 ) )
内容的提问来源于stack exchange,提问作者provance
相关产品推荐
相关产品推荐

