2016-02-24 2 views
-4

У меня есть этот код в PHP:Печать многомерного массива

$rules = array(
    "s0" => array(
     "a" => "s1_s2_s3", 
     "b" => "s2_s3"  
    ), 
    "s1_s2" => array(
     "a" => "s1_s2", 
     "b" => "s2_s3" 
    ), 
); 

И хочу напечатать это так:

s0 -- a --- s1_s2_s3 
s0 -- b --- s2_s3 
s1_s2 -- a --- s1_s2 
s1_s2 -- b --- s2_s3 

Как мне это сделать?

+0

Сумма усилий вы выдвинули удивительна. – csmckelvey

ответ

1

Это, как вы это делаете:

$rules = array(
    "s0" => array(
     "a" => "s1_s2_s3", 
     "b" => "s2_s3" 
    ), 
    "s1_s2" => array(
     "a" => "s1_s2", 
     "b" => "s2_s3" 
    ), 
); 


foreach ($rules as $key => $args) { 
    foreach ($args as $key2 => $vals) { 
     print $key . ' -- ' . $key2 . ' --- ' . $vals . '<br>'; 
    } 
} 


Для редактирования массива

Вы бы использовать array_push или [].

array_push($rules, ['another' => ['c' => 'value']]); 
$rules['another'] = ['c' => 'value']]; 

Чтобы добавить или обновить в массив с индексом:

$rules['another']['c'] = 'change c value'; 
+0

спасибо, я делаю это так же, как вы, но я забыл о «значении» :) –

+0

Если это сработает для вас, отметьте мой ответ как можно скорее :-) – DataHerder

+0

И один вопрос. Является ли какой-либо функцией массива, как добавить новое значение массива с этими тремя «элементами»? Что-то вроде array_push? –

0

Для достижения этой цели, вы должны пройти через массив. Для этого вам нужен цикл, а в PHP есть функция foreach. Вот ПРИМЕР-

Учитывая массив:

$rules = array("s0" => array("a" => "s1_s2_s3", 
           "b" => "s2_s3"  
          ), 
       "s1_s2" => array("a" => "s1_s2", 
           "b" => "s2_s3" 
           ) 
       ); 

foreach ($rules as $key => $value) { 
    foreach ($value as $sub_key => $sub_val) { 
     echo "<p>".$key." -- ".$sub_key." --- ".$sub_val."</p>"; 
    } 
} 

Конструкция Еогеасп обеспечивает простой способ для перебора массивов.

Выход:

s0 -- a --- s1_s2_s3 
s0 -- b --- s2_s3 
s1_s2 -- a --- s1_s2 
s1_s2 -- b --- s2_s3 
+0

спасибо, я делаю это так же, как вы, но я забыл о «значении» :) –