1

これはおそらく一部の人にとっては簡単な質問ですが、残念ながら私にとってはそうではありません。MySqlDBからシリアル化された配列を取得しています。それはうまくいきます。正常にシリアル化を解除します。次に、シリアル化されていない配列の順序で表示する必要のある画像の配列を取得しています。

$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

次のように、画像URLの別の配列を取得しています。

$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"
  }
]

私の質問は...どのように解析してimagesTinyURLをシリアル化されていない配列の順序で表示するのですか?つまり、画像のURLを配列内のorder配列順にリストしますか?idImages

4

1 に答える 1

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]);
}
于 2012-12-30T22:22:10.843 に答える