我必须打印数组写入值的所有值。
[subscriber] => Array
(
[name] => Subscriber
[capabilities] => Array
(
[read] => 1
[level_0] => 1
)
[default] => Array
(
[deft] => Array (
[one] => 2
[two] => 3
)
[deft_one] => Array (
[one] => t
[two] => h
)
)
)
我必须在数组下打印每个值。所以我使用了递归函数。但我不能得到结果。请帮我递归函数。
抱歉,我一直在努力。实际上我必须打印wp-option表值。有许多序列化数组。我想单独打印所有值。我的意思是当我使用下面写的代码时我得到了一个数组。
function option_value_change () {
global $wpdb;
$myrows = $wpdb->get_results( "SELECT *
FROM `wp_options`");
$temp_url = get_option('siteurl');
$site_url = get_site_url();
foreach ($myrows as $rows){
$option = get_option($rows->option_name);
//print_r($option);
get_option_value($option);
}
}
我可以拿到桌子。但是在阵列中。哪个数组有数组。所以我使用了一个函数“get_option_value($ option)”。如下所述
function get_option_value($option) {
if(!is_object($option) && !is_array($option)){
echo $option;
}
else{
foreach($option as $option_value){
if(!is_array($option_value)){
echo $option_value;
}
else {
get_option_value($option_value);
}
}
}
}
我无法获得所有的价值。它给出了一个错误
Object of class stdClass could not be converted to string.
那么如何打印数组的所有值。
答案 0 :(得分:1)
您可以使用RecursiveArrayIterator
示例:
$data = array(
'subscriber' => array(
'name' => 'Subscriber',
'capabilities' => array(
'read' => 1,
'level_0' => 1,
),
'default' => array(
'deft' => array(
'one' => 2,
'two' => 3,
),
'deft_one' => array(
'one' => 't',
'two' => 'h',
),
),
),
);
echo "<pre>";
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
foreach($it as $var)
{
echo $var , PHP_EOL ;
}
输出
Subscriber
1
1
2
3
t
h
答案 1 :(得分:0)
我没有测试它,但你可以得到这个想法;
function printArr($obj){
if(!is_array($obj)){
echo $obj;
return;
}
else if(is_array($obj)){
foreach ($obj as $key => $value) {
printArr($obj[$key]);
}
}
}