使用PHP获取最后两项json_decode结果

时间:2017-03-21 13:02:52

标签: php json

以下代码可以工作并从json文件中提取所有图像。

var baked = $("#recipes li").get();

for(var i = 0; i<baked.length, i++;){
  var currentBaked = $(baked[i]).get('a');
  currentBaked.parent().addClass(currentBaked.text().substring(0,1));
}

有没有办法可以让它只抓住最后两张照片。

4 个答案:

答案 0 :(得分:1)

是的,有办法。

$result = array_slice($json['format'], -2);

试一试。

答案 1 :(得分:0)

使用此:

$numItems = count(foreach($json['format']);
$i = 0;
foreach($json['format'] as $item) {
  if(++$i === $numItems-1) {
    result1 = $json['format'][$i]
    echo "first picture!";
  } if(++$i === $numItems) {
    result2 = $json['format'][$i]
    echo "second picture!";
  }
}    

结果1和结果2是你的照片

答案 2 :(得分:0)

你可以颠倒数组的顺序,在foreach循环中向后运行,抓住前两个然后中断。

$reversed = array_reverse($json);
$counter = 0;
foreach ($reversed['format'] as $item) {
    if ($counter == 2) {
          break;
     }
     //your echo image code
++$counter;
}

答案 3 :(得分:0)

我的版本使用array_pop

$content = file_get_contents('URL');
$json = json_decode($content, true); 

// take last element of array, array reduces by 1 element
$last = array_pop($json['format']);
print_r($last);

// take last element of array again, array reduces by 1 element
$last = array_pop($json['format']);
print_r($last);

// Beware - using `$json['format']` later means that 
// you use array without two last elements