使用反序列化的php数组来解析图像数组

时间:2012-12-30 22:16:29

标签: php arrays serialization multidimensional-array

对于一些人来说,这可能是一个简单的问题,但不幸的是不适合我。 我正在从MySql DB中检索序列化数组。这很好。它反序列化很好。 然后我检索一个我需要按照反序列化数组的顺序显示的图像数组:

$order = unserialize( $row['displayOrder']);

这将导致:

Array ( [0] => 2296543905 [1] => 2296540032 [2] => 2296540820 [3] => 2296541625 [4] => 2296541997 [5] => 2296542417 [6] => 2296542816 [7] => 2296543113 [8] => 2296545096 [9] => 2296544278

我正在检索另一个图像网址数组,如下所示:

$images = $images['Images'];
foreach ( $images as $index => $image) {
echo '<li><img src="'.$image['TinyURL'].'" class="framed"></li>';
}

结果是:

   "Images": [
  {
    "id": 2296543905,
    "TinyURL": "http://blah.com"
  }
]

"Images": [
  {
    "id": 2296543905,
    "TinyURL": "http://blah.com"
  }
]

我的问题是......我将如何解析以获得图像TinyURL以非序列化数组的顺序显示? 即:按order数组中的idImages数组的顺序列出图片网址?

1 个答案:

答案 0 :(得分:1)

这是一个小例子:

//Create an array where the keys are image ids
$imageArray=array();
foreach($images as $image)
    $imageArray[$image['id']]=$image;

//Output the images according to the order array (array of image ids)
foreach($order as $id){
    print_r($imageArray[$id]);
}