2017-01-07 2 views
1

Ниже моя функция:Php Преобразование многомерный массив в строку

public function getChildrenId(){ 
    $child_id = array($this->db->query("SELECT customer_id 
           FROM " . DB_PREFIX . "customer 
           WHERE parent IN (" .(int)$this->customer->getId().") ")); 
    foreach($child_id as $id =>$value) { 
     $conv = json_decode(json_encode($value), true); 
     $final = array_slice($conv,2); 
     foreach ($final as $gchildren => $key) { 
      sort($key); 
      $gr = array_slice($key,0,$this->INF); 
     } 
    } 
    return $gr; 
} 

Он выводит:

array (size=3) 
 
    0 => 
 
    array (size=1) 
 
     'customer_id' => string '2' (length=1) 
 
    1 => 
 
    array (size=1) 
 
     'customer_id' => string '4' (length=1) 
 
    2 => 
 
    array (size=1) 
 
     'customer_id' => string '7' (length=1)

Я пытаюсь получить значения вложенных массивов. Когда я использую foreach, я получаю данные только из массива [0]. Я также попытался нарезать родительский массив и все еще не понял, он выводит array,array,array.

Я хотел бы извлечь эти значения массивов в новый массив, который я могу использовать для запроса базы данных. final_array = array (2,4,7). Спасибо заранее!

ответ

2

Если ваш массив выглядит так, тогда foreach должен создать массив, который вы ищете.

array (size=3) 
    0 => 
    array (size=1) 
     'customer_id' => string '2' (length=1) 
    1 => 
    array (size=1) 
     'customer_id' => string '4' (length=1) 
    2 => 
    array (size=1) 
     'customer_id' => string '7' (length=1) 

Следующий PHP будет выводить array(2,4,7);

<?php 

$aNewArray = array(); 

foreach($aArray as $aArray){ 

    $aNewArray[] = $aArray['customer_id']; 

} 

var_dump($aNewArray); 

?> 

Вам не нужно многомерный массив для этого, хотя.

Смежные вопросы