我有一个多维数组,我试图提取某个键的所有值并将其赋值给变量。
这是数组:
Array
(
[I_would_not_know_the_name_of_this_key] => Array
(
[interval] => 3600
[display] => Once Hourly
)
[nor_this_one] => Array
(
[interval] => 43200
[display] => Twice Daily
)
[nor_this_one] => Array
(
[interval] => 86400
[display] => Once Daily
)
)
即使我不知道上限值是什么,我也总是得到[display]值。
包含上面数组的函数,可以添加更多的日程表,这就是为什么我说我不会总是知道顶级键:https://codex.wordpress.org/Function_Reference/wp_get_schedules
到目前为止我的代码:
$active_cron_schedules = wp_get_schedules(); //this is the
foreach ($active_cron_schedules as $key => $value) {
echo $key;
}
?>
此输出例如:' I_would_not_know_the_name_of_this_key' nor_this_one',' nor_this_one',我需要深入了解。
Arrays总是让我在PHP中赚钱,但是无法弄清楚如何循环使用它:(
谢谢
答案 0 :(得分:1)
我认为你要做的事情将通过foreach()
循环或array_column()
来解决,具体取决于你的php版本。变量部分很难回答,因为您没有举例说明您将对变量进行的操作。一个常见的错误是在循环中覆盖变量,但如果你想要的只是display
值(或任何其他键),请尝试:
function getValByKey($array, $getKey = 'display')
{
$new = array();
foreach($array as $arr) {
if(empty($arr[$getKey]))
continue;
$new[] = $arr[$getKey];
}
return $new;
}
$result = array(
'key1'=> array('interval'=>1,'display'=>'1d'),
'key2'=> array('interval'=>2,'display'=>'2d'),
'key3'=> array('interval'=>3,'display'=>'3d')
);
// To use
$display = getValByKey($result);
print_r($display);
// Array column has the same basic function, but
// Only available in PHP 5 >= 5.5.0, PHP 7
$display = array_column($result,'display');
print_r($display);
两者都给你:
Array
(
[0] => 1d
[1] => 2d
[2] => 3d
)
答案 1 :(得分:0)
这是一个样本。 $ key可以是任何东西。你只需要检查它的间隔子元素。
$interval_list = array();
foreach ($array as $key => $el) {
if (isset($el['interval'])) {
$interval_list[] = $el['interval'];
}
}