2017-09-06 4 views
-1

Ich habe folgende mehrdimensionales Arraymehrdimensionales Array sortieren basierend auf Datenbank-Spaltenwert vergleichen

Array 
(

    [1] => 22 
    [2] => 12 
    [3] => Array 
     (
      [0] => 4 
      [1] => 21 
     ) 

    [5] => Array 
     (
      [0] => 9 
      [1] => 3 
     ) 

    [7] => 7 
    [8] => 6 
    [9] => 1 
    [10] => 2 
    [11] => 10 
    [12] => 0 
    [13] => 23 
    [14] => 18 
    [15] => 16 
    [16] => 19 
    [17] => 15 
    [18] => 5 
    [19] => 8 
    [20] => 11 
    [21] => 13 
    [22] => 17 
    [23] => 14 
    [24] => 20 
) 

I mehrals ein Wert unter Array von Haupt-Array sortieren möchten.

Array 
(

    [3] => Array 
     (
      [0] => 4 
      [1] => 21 
     ) 

    [5] => Array 
     (
      [0] => 9 
      [1] => 3 
     ) 
) 

Jeder Schlüsselwert wird mit der Datenbankspalte verglichen und ein Array sortiert. Wenn der Wert nicht gefunden wird, bleibt das Array unverändert. Zum Beispiel: Der unten Schlüsselwert 21 in Datenbankspalten haben, dann sind erwartete Ergebnisse wie

[3] => Array 
    (

     [0] => 21 
     [1] => 4 

    ) 

aussehen, als nächster Array, der Schlüsselwert nächste Array nicht in der Datenbank dann erwartete Ergebnisse gefunden, wie es ist,

[5] => Array 
    (

     [0] => 9 
     [1] => 3 

    ) 

Der endgültige Ausgang sucht,

Array 
(

    [1] => 22 
    [2] => 12 
    [3] => Array 
     (
      [0] => 21 
      [1] => 4 
     ) 

    [5] => Array 
     (
      [0] => 9 
      [1] => 3 
     ) 

    [7] => 7 
    [8] => 6 
    [9] => 1 
    [10] => 2 
    [11] => 10 
    [12] => 0 
    [13] => 23 
    [14] => 18 
    [15] => 16 
    [16] => 19 
    [17] => 15 
    [18] => 5 
    [19] => 8 
    [20] => 11 
    [21] => 13 
    [22] => 17 
    [23] => 14 
    [24] => 20 
) 

Könnten Sie mir bitte helfen

+0

'rsort ($ array [3])' ?? –

+2

Was hast du bisher versucht? –

+0

Der Schlüsselwert 21 ist die Stunde des Tages. Diese Stunden sollten mit Datenbankspalte wie, übereinstimmen Ich möchte den Industriezeitwert aus der Datenbank abrufen – Naveeth

Antwort

0

prüfen diese.

$dump_array=Array('1' => 2,'2' => 12,'3' => Array 
    ('0' => 8,'1' => 21), 
'5' => Array ('0' => 9,'1' => 3), 
'7' => 7, 
'8' => 64, 
'9' => 15, 
'10' => 22, 

    ); 
echo "<pre> Soure :"; print_r($dump_array);echo "</pre>"; 
sort($dump_array); 
$result_array=array(); 
$array_unlist=array(); 
foreach($dump_array as $key=>$value){ 
    if(is_array($value)){ 
     sort($value); 
     array_push($array_unlist,$value); 
    } 
    else {array_push($result_array,$value);} 
} 
foreach($result_array as $index=>$val){ 
    foreach($array_unlist as $key=>$digit){ 
     if($val<$digit[0]) 
     { 
      $res=$index.".5"; 
      $result_array[$res]=$digit; 
     } 
    } 
} 

ksort($result_array); 

echo "<pre> Result :"; print_r(array_values($result_array));echo "</pre>"; 

output:

Soure :Array 
(
    [1] => 2 
    [2] => 12 
    [3] => Array 
     (
      [0] => 8 
      [1] => 21 
     ) 

    [5] => Array 
     (
      [0] => 9 
      [1] => 3 
     ) 

    [7] => 7 
    [8] => 64 
    [9] => 15 
    [10] => 22 
) 
Result :Array 
(
    [0] => 2 
    [1] => Array 
     (
      [0] => 3 
      [1] => 9 
     ) 

    [2] => 7 
    [3] => Array 
     (
      [0] => 8 
      [1] => 21 
     ) 

    [4] => 12 
    [5] => 15 
    [6] => 22 
    [7] => 64 
) 
+0

Danke für Ihre Hilfe – Naveeth

0

versuchen, diese

foreach($array as $k => $v){ 

     if(is_array($v)){ 

     rsort($array[$k]); 

     } 

} 

print_r($array); 
Verwandte Themen