2016-08-05 2 views
-1

У меня есть следующий массив:Как напечатать многоуровневый индекс массива в PHP

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

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

0=>string 


1.0=>1 


1.1=>2 


1.2=>3 


2=>true 


3=>php 
+2

@Anant [Пожалуйста, не злоупотребляйте обратными выражениями для всех слов!] (Http://meta.stackoverflow.com/q/254990/3933332) – Rizier123

+0

Все ответы в порядке с вышеуказанным массивом, только если мой подмассива также содержат подрамник, затем что делать – nilesh2293

ответ

0
<?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

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

<?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); 
Смежные вопросы