foreach的使用,处理高维数组
public function show_list()
{
if ($this->is_token()!==1){
return $this->is_token();
}
$index = Db::name($this->tableNameIndex)->select();
$left = Db::name($this->tableNameleft)->select();
$result = [];
foreach ($index as $index1) {
$id = $index1['id'];//每次循环就给id值给$id
$indexItem = $index1;//创建数组并存储查到的数据
$indexItem['child'] = [];//在这个数组插进去index_id这个字段,这里可以得到两个东西,一个是$id[],一个是indexItem['index_id']多了一个空字段的数据
foreach ($left as $left1) {
if ($left1['index_id'] == $id) {//if判断left数据字段的index_id是否等于上面传递到的
$indexItem['child'] = $left1;//将这个数组查到的一条数据插入这个数组中
}
}
$result[] = $indexItem;
}
return json_encode($result);
}
另一种用法
public function extt(){
$nestedArray = [
'name' => 'Alice',
'age' => 25,
'address' => [
'city' => 'New York',
'country' => 'USA'
],
'hobbies' => ['reading', 'traveling']
];
foreach ($nestedArray as $key => $value) {//$key是前面数组的键,$value是前面数组的值
if (is_array($value)) {//判断这个值是否是数组
echo "$key: ";//是的话先打印键
foreach ($value as $subKey => $subValue) {//再将这个数组的值,相当于又是键值对,其中的键给$subkey,值给$subValue
echo "$subKey => $subValue, ";//这里再打印这里的键值对
}
echo "\n";//打印换行
} else {
echo "$key: $value\n";//打印键值对不是数组形式数据
}
}