如何在第一个循环中终止 array_walk?
how to terminate array_walk on first loop?
我只需要打印第一个 child(1955) 数组中的一个 sub_title。
这里有一些示例代码(有效)来说明我的意思。
$array = Array
(
[1955] => Array
(
[sub_title] => subtitle
[sub_content] => content
)
[1957] => Array
(
[sub_title] => subtitle
[sub_content] => conent
)
[1958] => Array
(
[sub_title] => subtitle
[sub_content] => conent
)
)
array_walk($array, function($item){
echo $item['sub_title'];
break;
});
您应该创建一个用作标志的全局布尔变量
<?php
$walk_arr = [
0 => "A",
1 => "B",
3 => "D",
5 => "F",
];
global $stop_walk;
$stop_walk = false;
$walk_func = function(&$v, $k) {
global $stop_walk;
if ($k === 3) {
$stop_walk = true;
}
if ($stop_walk) {
return;
}
$v .= " changed";
};
unset($stop_walk);
array_walk($walk_arr, $walk_func);
print_r($walk_arr);
print $stop_walk;
查看实际效果:https://3v4l.org/6kceo
顺便说一句:你不能只输出第一行吗?
echo $array[1995]['sub_title']
据我了解你的任务,你需要获取数组的第一个元素。使用 reset(array $array)
函数获取第一个元素,而不是获取值。
所以你的代码应该看起来像 $fistElement = reset($array); echo $firstElement['sub_titile'];
请同时阅读数组功能的文档,不要尝试用锤子缝纫
我只需要打印第一个 child(1955) 数组中的一个 sub_title。
这里有一些示例代码(有效)来说明我的意思。
$array = Array
(
[1955] => Array
(
[sub_title] => subtitle
[sub_content] => content
)
[1957] => Array
(
[sub_title] => subtitle
[sub_content] => conent
)
[1958] => Array
(
[sub_title] => subtitle
[sub_content] => conent
)
)
array_walk($array, function($item){
echo $item['sub_title'];
break;
});
您应该创建一个用作标志的全局布尔变量
<?php
$walk_arr = [
0 => "A",
1 => "B",
3 => "D",
5 => "F",
];
global $stop_walk;
$stop_walk = false;
$walk_func = function(&$v, $k) {
global $stop_walk;
if ($k === 3) {
$stop_walk = true;
}
if ($stop_walk) {
return;
}
$v .= " changed";
};
unset($stop_walk);
array_walk($walk_arr, $walk_func);
print_r($walk_arr);
print $stop_walk;
查看实际效果:https://3v4l.org/6kceo
顺便说一句:你不能只输出第一行吗?
echo $array[1995]['sub_title']
据我了解你的任务,你需要获取数组的第一个元素。使用 reset(array $array)
函数获取第一个元素,而不是获取值。
所以你的代码应该看起来像 $fistElement = reset($array); echo $firstElement['sub_titile'];
请同时阅读数组功能的文档,不要尝试用锤子缝纫