php替换数组id键
我使用一个mysql查询为嵌套结果(类别和子类别)创建一个多维数组 质疑 创建多维数组php替换数组id键,php,mysql,Php,Mysql,我使用一个mysql查询为嵌套结果(类别和子类别)创建一个多维数组 质疑 创建多维数组 $array = array(); foreach ($query->result_array() as $row): //query result as a pure array $array[$row['cat_title']][] = $row['sub_cat_title']; endforeach; return $array; 以上返回类别及其各自的子类别 Arr
$array = array();
foreach ($query->result_array() as $row): //query result as a pure array
$array[$row['cat_title']][] = $row['sub_cat_title'];
endforeach;
return $array;
以上返回类别及其各自的子类别
Array (
[Art] => Array ( [0] => Graphic Design [1] => Painting )
[Literature] => Array ( [0] => Science Fiction [1] => Poetry [2] => Fiction )
[Science] => Array ( [0] => Environmental )
)
是否可以用子类别id子类别id
之类的查询数据替换数组键?比如说
[Literature] => Array ( [8] => Science Fiction [94] => Poetry [5] => Fiction )
是,在循环中设置:
$array[ $row['cat_title'] ][ $row['sub_cat_id'] ] = $row['sub_cat_title'];
但是,$array[$row['cat_title']]
可能尚未设置,因此您应该事先添加此检查:
if( !isset( $array[$row['cat_title']])) {
$array[$row['cat_title']] = array();
}
您的原始代码不需要此检查,因为
$array[]
不会生成任何通知/警告,但当您尝试设置特定键时,如果变量尚未声明为数组,则会生成通知/警告。您可以执行以下操作:
foreach($array as $key=>$val){
unset($array[$key]);
$newKey = //New value
$array[$newKey] = $val];
}
谢谢这比我想象的要容易<代码>cat_title将始终设置,而我将检查某个类别是否存在子类别,并显示它们(如果存在)。
foreach($array as $key=>$val){
unset($array[$key]);
$newKey = //New value
$array[$newKey] = $val];
}