1

配列を取得し、end()存在するか空かを確認します。空の場合、配列の前のオブジェクトを取得したいと思います。使ってみprev()ましたが、 に適用するとうまくいかないようでしたend()

助言がありますか?配列の長さとサイズはさまざまです。

助けてくれてありがとう!

いくつかのコード:

$pagination = esc_url( get_next_posts_page_link()); // returns url with slashes
$parts = explode('/', $pagination);
//get the last item
$tag = end($parts);
if ($tag == ""){echo prev($tag); } else{echo $tag;}
4

4 に答える 4

2

これに使用できますarray_slice()

$theItem = array_slice($theArray, -2, 1);
于 2012-09-30T02:05:26.757 に答える
1

両方の関数がその配列の内部配列ポインターを操作してprev()いるため、結果ではなく元の配列に適用する必要があります。end()

そう:

if ($tag == ""){echo prev($parts); } else{echo $tag;}

編集:ちなみに、最後の項目が空にならないようにするために、 a trim($pagination, '/')before you を実行することもできます。explode

于 2012-09-30T02:06:58.880 に答える
0

別の解決策:

<?php

    $arr = array("foo", "bar", "hi", "bye");

    echo $arr[count($arr)-2];

?>

2count()で始まるので1、ではありません0

出力

こんにちは

于 2012-09-30T02:26:53.620 に答える
0

配列を尊び使うarray_pop

$parts_reversed = array_reverse($parts, true);
$tag = array_pop($parts_reversed);
if ($tag == ""){echo array_pop($parts_reversed); } else{echo $tag;}
于 2012-09-30T03:31:13.263 に答える