Я пытался решить эту проблему из последних 5 часов результата не пришли, как я espected .. ниже данные выборок, которые я получить из функции .. пожалуйста, прокрутите внизпреобразования массива в пользовательском формат
Array
(
[35] => Array
(
[36] =>
[37] => Array
(
[44] =>
[45] =>
[43] =>
[42] =>
[41] =>
[40] =>
)
)
[1] => Array
(
[3] =>
[2] => Array
(
[25] =>
[146] =>
[23] =>
[22] =>
[8] =>
[9] =>
[12] => Array
(
[20] =>
[19] =>
)
)
)
То, что я хотел это например: «ключевое значение 35», имеющий затворника массив, и я хочу, чтобы перечислить все ключи его массива
Пример:
$output_required = array(
35 => array(
36, 37, 44, 45, 43, 42, 41,40
),
36 => array(
),
37 => array(
44,45,43,42,41,40
),
1 => array(
3,2,25,146,23,22,8,9,12,20,19
)
//Continue 3,2,25 etc
);
Full DATA Если вы работаете над решением моей проблемы. :)
$data_array = unserialize('a:9:{i:35;a:2:{i:36;s:0:"";i:37;a:6:{i:44;s:0:"";i:45;s:0:"";i:43;s:0:"";i:42;s:0:"";i:41;s:0:"";i:40;s:0:"";}}i:1;a:2:{i:3;s:0:"";i:2;a:7:{i:25;s:0:"";i:146;s:0:"";i:23;s:0:"";i:22;s:0:"";i:8;s:0:"";i:9;s:0:"";i:12;a:2:{i:20;s:0:"";i:19;s:0:"";}}}i:33;a:2:{i:34;s:0:"";i:51;a:2:{i:135;s:0:"";i:52;s:0:"";}}i:117;a:2:{i:118;a:4:{i:130;s:0:"";i:129;s:0:"";i:128;s:0:"";i:127;s:0:"";}i:119;a:9:{i:126;s:0:"";i:131;s:0:"";i:132;s:0:"";i:125;s:0:"";i:124;s:0:"";i:121;s:0:"";i:122;s:0:"";i:123;s:0:"";i:120;s:0:"";}}i:59;a:3:{i:64;a:2:{i:134;s:0:"";i:133;s:0:"";}i:60;a:2:{i:63;s:0:"";i:62;s:0:"";}i:61;a:5:{i:145;s:0:"";i:144;s:0:"";i:143;s:0:"";i:142;s:0:"";i:141;s:0:"";}}i:97;a:4:{i:101;s:0:"";i:100;s:0:"";i:99;s:0:"";i:98;s:0:"";}i:82;a:4:{i:86;s:0:"";i:83;a:2:{i:85;s:0:"";i:84;s:0:"";}i:87;a:2:{i:89;s:0:"";i:88;s:0:"";}i:136;a:4:{i:140;s:0:"";i:139;s:0:"";i:138;s:0:"";i:137;s:0:"";}}i:92;a:4:{i:96;s:0:"";i:95;s:0:"";i:94;s:0:"";i:93;s:0:"";}i:47;a:6:{i:57;s:0:"";i:58;s:0:"";i:54;s:0:"";i:53;s:0:"";i:49;s:0:"";i:48;s:0:"";}}');
Это код, что я попробовал
public function clean_cat_path($datas, $parent_ids = array())
{
static $array,$parent_ids;
foreach ($datas as $k => $data) {
if (!empty($data)) {
$parent_ids[] = $k;
$this->clean_cat_path($data, $parent_ids);
}
if (empty($parent_ids)) {
$array[$k][$k] = $k;
} else {
foreach ($parent_ids as $id) {
$array[$k][$id] = $id;
}
}
$parent_ids = array();
}
return $array;
}
ИТС РЕШИТЬ САМОСТОЯТЕЛЬНО жаль, если вы не правильно понял
<?php
class test_class
{
static $cat_list;
public function execute()
{
$data_array = unserialize('a:9:{i:35;a:2:{i:36;s:0:"";i:37;a:6:{i:44;s:0:"";i:45;s:0:"";i:43;s:0:"";i:42;s:0:"";i:41;s:0:"";i:40;s:0:"";}}i:1;a:2:{i:3;s:0:"";i:2;a:7:{i:25;s:0:"";i:146;s:0:"";i:23;s:0:"";i:22;s:0:"";i:8;s:0:"";i:9;s:0:"";i:12;a:2:{i:20;s:0:"";i:19;s:0:"";}}}i:33;a:2:{i:34;s:0:"";i:51;a:2:{i:135;s:0:"";i:52;s:0:"";}}i:117;a:2:{i:118;a:4:{i:130;s:0:"";i:129;s:0:"";i:128;s:0:"";i:127;s:0:"";}i:119;a:9:{i:126;s:0:"";i:131;s:0:"";i:132;s:0:"";i:125;s:0:"";i:124;s:0:"";i:121;s:0:"";i:122;s:0:"";i:123;s:0:"";i:120;s:0:"";}}i:59;a:3:{i:64;a:2:{i:134;s:0:"";i:133;s:0:"";}i:60;a:2:{i:63;s:0:"";i:62;s:0:"";}i:61;a:5:{i:145;s:0:"";i:144;s:0:"";i:143;s:0:"";i:142;s:0:"";i:141;s:0:"";}}i:97;a:4:{i:101;s:0:"";i:100;s:0:"";i:99;s:0:"";i:98;s:0:"";}i:82;a:4:{i:86;s:0:"";i:83;a:2:{i:85;s:0:"";i:84;s:0:"";}i:87;a:2:{i:89;s:0:"";i:88;s:0:"";}i:136;a:4:{i:140;s:0:"";i:139;s:0:"";i:138;s:0:"";i:137;s:0:"";}}i:92;a:4:{i:96;s:0:"";i:95;s:0:"";i:94;s:0:"";i:93;s:0:"";}i:47;a:6:{i:57;s:0:"";i:58;s:0:"";i:54;s:0:"";i:53;s:0:"";i:49;s:0:"";i:48;s:0:"";}}');
return $this->clean_cat_path($data_array);
}
public function clean_cat_path($datas)
{
foreach ($datas as $k => $data) {
$this->cat_list[$k][$k] = $k;
if (!empty($data)) {
$this->list_keys_of($data, $k);
$this->clean_cat_path($data);
}
}
return $this->cat_list;
}
private function list_keys_of($data, $key_id)
{
foreach ($data as $k => $d) {
$this->cat_list[$key_id][] = $k;
if (!empty($d)) {
$this->list_keys_of($d, $key_id);
}
}
}
}
$test = new test_class();
$output = $test->execute();
echo '<pre>';
print_r($output);
echo '</pre>';
В полезного выхода, ключи 36, 37 и 44, 45, и т.д., на том же уровне. Вы уверены, что это то, что вы хотите? – Theox
Вы могли бы объяснить более четко, как вывод относится к входу? Очевидно, вы как-то пытаетесь «сгладить» ввод, но я не могу понять, почему определенные значения принадлежат определенному ключу. Не могли бы вы сделать очень простой пример, чтобы объяснить это? – Floris
@ Theox отредактировал, пожалуйста, обновите ... – Raj