2013-04-03 2 views
0
$images = valley_images(); 
var_dump($images); 
$sorted_data = array(); 

foreach($images as $key => $value) { 
    if ($key == 'timestamp') { 
     $sorted_data[$value][] = $images; 
    } 
} 

ksort($sorted_data); 

Ошибка появляется на этой линии:Незаконный тип смещения?

$sorted_data[$value][] = $images; 

Когда я УАК дамп изображений я получаю это:

array(2) { 
[0]=> array(2) { 
["id"]=> string(2) "17" ["timestamp"]=> string(10) "1359797773" 
} 
[1]=> array(2) { 
["id"]=> string(2) "20" ["timestamp"]=> string(10) "1359934365" 
} 
+3

'$ value' - это массив. Он должен быть скалярной переменной. –

+2

Вы не можете использовать массив в качестве ключа массива. Вы хотите использовать его ключ 'id'? (как в '$ sorted_data [$ value ['id']] [] = $ images' –

+0

Обеим вам огромное спасибо спасибо! – Tuccinator

ответ

1

Хороший способ сделать сортировку ключ на многозначный массив без необходимости знать, какие ключи у вас есть в массиве:

<?php 
$people = array( 
array("name"=>"Bob","age"=>8,"colour"=>"red"), 
array("name"=>"Greg","age"=>12,"colour"=>"blue"), 
array("name"=>"Andy","age"=>5,"colour"=>"purple")); 

var_dump($people); 

$sortArray = array(); 

foreach($people as $person){ 
    foreach($person as $key=>$value){ 
     if(!isset($sortArray[$key])){ 
      $sortArray[$key] = array(); 
     } 
     $sortArray[$key][] = $value; 
    } 
} 

$orderby = "name"; //change this to whatever key you want from the array 

array_multisort($sortArray[$orderby],SORT_DESC,$people); 

var_dump($people); 
+0

Вау, спасибо! Недавно я просто задал вопрос, чтобы сделать это! – Tuccinator