2. Изменить:
Я изменил мое итерационное решение таким образом, чтобы общая длина результирующего массива в Шрифтом- формат проверяется. Если длина не изменилась, итерация завершится.
(Модифицированный) Образец данных:
$a=array('18'=> array ( '1' =>'', '14' =>''),
'20' => array ('32' =>''),
'23' => array ('24' =>''),
'24' => array ('25' =>'', '26' =>''),
'26' => array ('27' =>'', '28' =>''),
'29' => array ('33' =>''),
'30' => array ('23' =>'', '31' =>''),
'32' => array ('30' =>''),
'33' => array ('32' =>'')
);
Код:
function plough(&$a){ // ploughs throught the array once from top to bottom ...
foreach ($a as $ak => &$av){
foreach($av as $k => &$v) {
if(isset($a[$k])) $v=$a[$k];
}
}
return strlen(print_r($a,1)); // returns string-length of print_r-output
}
// iterate until there is no change in string-length any more ...
for ($al1=1+$al0=0 ;$al0<$al1; $al1=plough($a)) $al0=$al1;
print_r($a);
Размещая &
до имен переменных в foreach
петли вы работаете с ссылками на эти vaiables и а не с скопированными значениями. Применяя процедуру на моих (измененными) пример приводит следующий вывод
:
Array
(
[18] => Array
(
[1] =>
[14] =>
)
[20] => Array
(
[32] => Array
(
[30] => Array
(
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[31] =>
)
)
)
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
[26] => Array
(
[27] =>
[28] =>
)
[29] => Array
(
[33] => Array
(
[32] => Array
(
[30] => Array
(
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[31] =>
)
)
)
)
[30] => Array
(
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[31] =>
)
[32] => Array
(
[30] => Array
(
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[31] =>
)
)
[33] => Array
(
[32] => Array
(
[30] => Array
(
[23] => Array
(
[24] => Array
(
[25] =>
[26] => Array
(
[27] =>
[28] =>
)
)
)
[31] =>
)
)
)
)
не это уже договорились? – Satya
где второй массив? вы написали «Я хочу, чтобы этот массив перестраивался так», который будет для 2 массивов. 1-й массив - это входной массив, а второй массив - это переупорядоченный массив в качестве выходного. –
Только это много контента или очень много контента? Если что-то среднее, вы можете организовать вручную. В противном случае нужны некоторые коды. А как насчет вас? – KarSho