从多维关联数组中提取值
Pull out values from multidimensional associative array
我有一个多维数组,我试图提取某个键的所有值并将其分配给一个变量。
这是数组:
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',我需要深入了解。
数组总是给了我一个 运行 我的钱在 PHP 不知道如何循环它:(
谢谢
无论是什么键,您甚至不需要在 foreach 中知道它。
这是一个示例。 $key 可以是任何东西。你只需要检查它的间隔子元素。
$interval_list = array();
foreach ($array as $key => $el) {
if (isset($el['interval'])) {
$interval_list[] = $el['interval'];
}
}
我认为您尝试做的事情将通过 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
)
我有一个多维数组,我试图提取某个键的所有值并将其分配给一个变量。
这是数组:
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',我需要深入了解。
数组总是给了我一个 运行 我的钱在 PHP 不知道如何循环它:(
谢谢
无论是什么键,您甚至不需要在 foreach 中知道它。
这是一个示例。 $key 可以是任何东西。你只需要检查它的间隔子元素。
$interval_list = array();
foreach ($array as $key => $el) {
if (isset($el['interval'])) {
$interval_list[] = $el['interval'];
}
}
我认为您尝试做的事情将通过 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
)