0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHPで配列の末尾からひとつ前の要素を取り出す

Last updated at Posted at 2015-10-27

リストや配列の後ろから二番目の要素を取り出すとき、Python1やPerl2だとlist[-2]といった形で指定できますが、PHPだとどうするのだろうと調べたメモ。

結果として、Qiitaに既に良記事があったため解決しました。

おわりです。

試行錯誤

ここは自分で無い知恵絞っていたときの形跡を記録しておきます。


<?php
error_reporting(-1);

$a = range('a', 'z');

// 連想配列でなければ、添字にcount()の結果を使えば良さそう。
if (isset($a)) {
    $c = count($a);
    if ($c >= 2) {
        // インデックス配列であること
        if (array_values($a) === $a) {
            print $a[ $c - 2 ].PHP_EOL;
            //#=> y
        }
    }
}

<?php

error_reporting(-1);

$a = array(
  'ド' => 'ドーナッツ',
  'レ' => 'レモン',
  'ミ' => 'みんな',
  'ファ' => 'ファイト',
  'ソ' => 'あおいそら',
);

// ポインタ移動させていいならendしてprevが連想配列でも動くから良さそう。
if (isset($a)) {
    if (count($a) >= 2) {
        end($a);
        print prev($a).PHP_EOL;
        //#=> ファイト
    }
}

「末尾からふたつ前の要素」って言われたらもう一回prevする。

参考や注釈

  1. Pythonでリストの最後(一番後ろ)の値を取得する方法 - Qiita

  2. Perl5,Perl6で配列の末尾からひとつ前の要素を取り出す

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?