2012-05-07 7 views
0

私はPHPを初めて使い、ワードプレスのソースコードを理解しています。私は次のコード行に遭遇してきた私の旅で ...PHPの配列キーから1を引く目的は何ですか

$lastc = $data[$length-1]; 

誰もが$長-1の目的は、データ・アレイ内にあるものを私に伝えることができますか?

+1

詳細なしでプログラマーの意図を予測することはできません!しかし、この場合、文字列の「最後の文字」を取得しているようです。 –

+0

具体的には、-1が何をキーにすることができるかを知る必要があります。もっとコードをアップロードします! – jrounsav

答えて

3

我々が配列している場合:

$arr = array(1, 2, 3, 4, 5); 

を次に$lengthは、count($arr)され、5 $データ[する$長さ - 1]が最後の要素(第四の指標)です。

しかし、これはひどく読めることに注意してください。だから、開発者はおそらく一緒に行っているはずです:

$lastc = end($data); 

これは、配列の最後の要素を返します。それは文字列の場合

、彼らが使用する必要があります。文字列の最後の文字を返します

$lastc = substr($data, $length - 1); 

を。

+1

私は 'should 'とは言いませんが、' end() 'がこれを行うためのよりクリーンな方法であることに同意します – Jon

+0

優秀!どうもありがとうございました! – jrounsav

0

長さ3の配列は、メンバーが0,1および2です。したがってarray[3]は存在しませんが、array[3-1](別名array[2])があります。

0

おそらく、これは配列の最後の要素を取得する方法です。配列はゼロインデックス付けされているので、配列の最後の要素は長さより1小さい。たとえば、配列$ fooに5つの要素がある場合、最後の要素は$ foo [4]で参照できます。

0

$data[$length-1]は、配列の最後の要素の取得方法です。

1

この場合、このコードはその特定の文字列の最後の文字を取得するように見えます。 PHPでは、配列として文字列を扱うことができます。

<?php 
$str = "Hello world"; 
echo $str[6]; //outputs w; 
?> 

(もPHP manualを参照してください)。この場合、コードは$lengthに格納されている特定の文字列の長さを持つように見えるので、$length-1はインデックスが0から始まるため、最後の文字を取得する必要があるインデックスです。

0

基本的には方法です配列の最後の項目を参照します。配列はゼロのインデックスで始まり、配列の長さは少なくとも1です(配列が空でないと仮定して)$ array [(count($ array)-1)]を使うと、最後の項目が得られます。

最後の要素が指定された配列よりも頻繁に必要な場合は、array_reverseを使用して$ array [0]を呼び出すことができます。

+4

最後の要素を取得するために、配列全体を逆にしますか?それは過剰殺人のように聞こえる。 PHPの 、ちょうどend()を使用してください – Jarry

+0

あなたは正しい、Jarry。それも便利で、私の心を完全に崩してしまった。 +1してください。 – maiorano84

+1

複数の要素が必要な場合は、array_sliceを使用します。それでも配列を逆にする必要はありません。あなたも、Benastan。 – benastan

関連する問題