Как напечатать индекс многоуровневого массива в переполнении стека

У меня есть следующий массив:

$array=array("string",array(1,2,3),true,"php");

и я хочу напечатать индексы как:

0=>string1.0=>11.1=>21.2=>32=>true3=>php

-1

Решение

<?php

$array=array("string",array(1,2,3),true,"php");

foreach($array as $key=>$value)
{
if(is_array($value))
{
foreach($value as $childkey=>$childvalue)
{
echo $key . "." . $childkey . "=>" . $childvalue . "\n";
}
}
elseif(is_bool($value))
{
echo $key . "=>" . ($value ? "true" : "false") . "\n";
}
else
{
echo $key . "=>" . $value . "\n";
}
}

Выход:

0=>string
1.0=>1
1.1=>2
1.2=>3
2=>true
3=>php
0

Другие решения

Попробуй это

<?php
$array=array("string",array(1,2,3),true,"php");
foreach($array as $key=>$value){
if(is_array($value)){
foreach($value as $key1=>$value1){
echo $key.".".$key1." => ".$value1."</br>";
}
}
else{
echo $key." => ".$value."</br>";
}
}
0

<?php

$array=array("string",array(1,2,3),"true","php");

foreach($array as $key=>$value){
if(is_array($value)){
foreach($value as $key1=>$loop){
echo $key.'.'.$key1 .'=>'.$loop."<br>";

}
}else{
echo $key .'=>'.$value."<br>";
}

}
?>
0

Попробуйте этот код

$array=array("string",array(1,2,3),true,"php");

foreach($array as $key=>$val){
if(is_array($val)){
foreach($val as $key1=>$val1){
echo $key.'.'.$key1 .'=>'.$val1.'<br/>';

}
}else{
echo $key .'=>'.$val.'<br/>';
}
}
0

Вы можете попробовать это

<?php
$arr=array("string",array(1,2,3),true,"php");
$res=convArray($arr);
foreach($res as $k=>$v){
echo $k."=>".$v."\n";
}

function convArray($arr)
{
foreach($arr as $k1=>$v1){
if(is_array($v1)){
foreach($v1 as $k2=>$v2){
$res[$k1.'.'.$k2]=$v2;
}
}else{
$res[$k1]=$v1;
}
}
return $res;
}

?>

0

Попробуй это:

<?php
$array=array("string",array(1,2,3,array('a','b','c')),true,"php");
$kt = array();
function showarray($arr,$k) {
global $kt;
foreach($arr as $key => $v) {
$nk = $k == '' ? $key:$k.'.'.$key;
if(is_array($v)) {
showarray($v,$nk);
} else {
$kt[$nk]  = $v;
}
}
}
showarray($array,"");
print_r($kt);
0
По вопросам рекламы [email protected]