2016-04-24 6 views
1

Ich habe ein Array (Von mysql),Split Multi Dimensional Array in einzelne Array: PHP

Array ( 
    [0] => Array ( 
     [heading] => Page Name change 
     [name] => Page_Name_change 
     [menu] => online 
    ) 
    [1] => Array ( 
     [heading] => Lorem ipsum dolor 
     [name] => Lorem_ipsum_dolor_ 
     [menu] => akshaya 
    ) 
    [2] => Array ( 
     [heading] => fgdfgfdgdfgdf 
     [name] => fgdfgfdgdfgdf 
     [menu] => akshaya 
    ) 
) 

Ich brauche es in getrennte Felder aufgeteilt, Basis auf [menu], lesen Sie in diesem php

function getpage() { 
    $query = "SELECT heading,name,menu FROM pages"; 
    $res = $this->_conn->query($query); 
    while ($row = mysqli_fetch_assoc($res)) { 
     $result[] = $row; 
    } 
    for ($i=0; $i < count($result); $i++) { 
     if (strcmp($result[$i]['menu'],'akshaya') == 0) { 
      for ($j=0; $j < count($result[$i]) ; $j++) 
       $menu = $result[$i][$j]; 
     } 
    } 
    //if(strcmp($row['menu'],'akshaya')==0) { } 
    return $menu; 
} 

das erwartete Ergebnis ist das Array, wobei jedes Menü Segment die Liste der Elemente aus der ursprünglichen Anordnung hat, wie folgt aus:

[ 
    'online' => [ 
     [ 
      'heading' => '...', 
      'name' => '...', 
     ], 
    ], 
    'akshaya' => [ 
     [...], 
     [...], 
    ], 
] 

MySql Data base

sein für die Anzeige eines Navigationsmenü & Untermenü,

enter image description here

Antwort

1
function getpage() { 
    $query = "SELECT heading,name,menu FROM pages"; 
    $res = $this->_conn->query($query); 
    while ($row = mysqli_fetch_assoc($res)) { 
     $result[] = $row; 
    } 

    $menu = []; 
    foreach ($result as $menuItem) { 
     $menu[$menuItem['menu']][] = $menuItem; 
    } 

    return $menu; 
} 
+0

gelöst ... Ihre Antwort funktioniert .. –

+0

könnten Sie bitte die richtige Antwort markieren? –

0
function getpage() { 
    $query = "SELECT heading,name,menu FROM pages"; 
    $res = $this->_conn->query($query); 
    while ($row = mysqli_fetch_assoc($res)) { 
     $result[] = $row; 
    } 

    $menu = []; 
    foreach ($result as $menuItem) { 
     $menu[$menuItem['menu']][] = $menuItem; 
    } 

    return $menu; 
} 



<?php 
$nav=new Pages(); 
$res=$nav->getpage(); 
//print_r($res); 
echo "<br>"; 
foreach ($res as $r){ 
    // print_r($r); 
    echo "<br>"; 
    foreach($r as $rc){ 

     if (strcmp($rc['menu'],'akshaya') == 0) { 
      $akshaya[]=$rc; 
    } 
    echo "<br>"; 
} 
} 
    print_r($akshaya); 
echo count($res); 

?> 

OutPut:

Array ([0] => Array ([heading] => Lorem ipsum dolor [name] => Lorem_ipsum_dolor_ [menu] => akshaya) [1] => Array ([heading] => fgdfgfdgdfgdf [name] => fgdfgfdgdfgdf [menu] => akshaya))