Перемещение массивов / элементов в многомерном массиве как дочерний массив в зависимости от значения определенного столбца - PullRequest
0 голосов
/ 27 сентября 2018
Array
(
  [0] => Array
    (
      [id] => 50
      [append_parent] => 51
      [data] => Array
        (
          [0] => Array
            (
              [id] => 43
              [append_parent] => 
            )

          [1] => Array
            (
              [id] => 44
              [append_parent] => 
            )
        )
    )

  [1] => Array
    (
      [id] => 51
      [append_parent] => 
      [data] => Array
        (
          [0] => Array
            (
              [id] => 41
              [append_parent] => 
            )

          [1] => Array
            (
              [id] => 42
              [append_parent] => 43
            )
        )
    )
)

Это пример массива, я пытаюсь работать в этом многомерном массиве, чтобы перемещать (не копировать, а перемещать) массивы / элементы как дочерние массивы / элементы, если этот массив имеет значение, указанное в append_parentстолбец, соответствующий столбцу идентификатора массива / элементов.Например, если массив имеет append_parent = 42, он должен стать дочерним массивом / элементом для массива / элемента, который имеет столбец с id = 42. Таким же образом все массивы / элементы со значениями в столбце append_parent должны стать дочерними массивами /элементы к массивам, которые соответствуют значению в столбцах id.

Я пытаюсь использовать следующий подход, но нигде не достигаю

function SearchAndAppend($array, $col, $value) {
  foreach($array as $key => $val) {
    $temp_array = array();
    $temp_array = $array;
    if (!is_array($val)) {
      if ($key == $col && $val == $value){
        $temp_array[] = $element_to_append;
      }
      } else {
      if ($this->SearchAndAppend($val, $col, 42))
      $temp_array[] = $element_to_append;
    }
  }
  return $temp_array;
}

$sorted_array = $this->SearchAndAppend($arr, "id", "append_parent");

Массив при необходимости

$a1[0] = array("id"=>"34", "append_parent"=>"42");
$a1[1] = array("id"=>"35", "append_parent"=>"41");

$a1[0] = array("id"=>"36", "append_parent"=>"");
$a1[1] = array("id"=>"37", "append_parent"=>"44");

$x1[0] = array("id"=>"41", "append_parent"=>"");
$x1[1] = array("id"=>"42", "append_parent"=>"43");

$x2[0] = array("id"=>"43", "append_parent"=>"");
$x2[1] = array("id"=>"44", "append_parent"=>"");

$arr[0] = array("id"=>"50", "append_parent"=>"51", "data"=>$x2);
$arr[1] = array("id"=>"51", "append_parent"=>"", "data"=>$x1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...