私はPHPを初めて使い、ワードプレスのソースコードを理解しています。私は次のコード行に遭遇してきた私の旅で ...PHPの配列キーから1を引く目的は何ですか
$lastc = $data[$length-1];
誰もが$長-1の目的は、データ・アレイ内にあるものを私に伝えることができますか?
私はPHPを初めて使い、ワードプレスのソースコードを理解しています。私は次のコード行に遭遇してきた私の旅で ...PHPの配列キーから1を引く目的は何ですか
$lastc = $data[$length-1];
誰もが$長-1の目的は、データ・アレイ内にあるものを私に伝えることができますか?
我々が配列している場合:
$arr = array(1, 2, 3, 4, 5);
を次に$length
は、count($arr)
され、5 $データ[する$長さ - 1]が最後の要素(第四の指標)です。
しかし、これはひどく読めることに注意してください。だから、開発者はおそらく一緒に行っているはずです:
$lastc = end($data);
これは、配列の最後の要素を返します。それは文字列の場合
、彼らが使用する必要があります。文字列の最後の文字を返します
$lastc = substr($data, $length - 1);
を。
長さ3の配列は、メンバーが0
,1
および2
です。したがってarray[3]
は存在しませんが、array[3-1]
(別名array[2]
)があります。
おそらく、これは配列の最後の要素を取得する方法です。配列はゼロインデックス付けされているので、配列の最後の要素は長さより1小さい。たとえば、配列$ fooに5つの要素がある場合、最後の要素は$ foo [4]で参照できます。
$data[$length-1]
は、配列の最後の要素の取得方法です。
この場合、このコードはその特定の文字列の最後の文字を取得するように見えます。 PHPでは、配列として文字列を扱うことができます。
<?php
$str = "Hello world";
echo $str[6]; //outputs w;
?>
(もPHP manualを参照してください)。この場合、コードは$length
に格納されている特定の文字列の長さを持つように見えるので、$length-1
はインデックスが0から始まるため、最後の文字を取得する必要があるインデックスです。
基本的には方法です配列の最後の項目を参照します。配列はゼロのインデックスで始まり、配列の長さは少なくとも1です(配列が空でないと仮定して)$ array [(count($ array)-1)]を使うと、最後の項目が得られます。
最後の要素が指定された配列よりも頻繁に必要な場合は、array_reverseを使用して$ array [0]を呼び出すことができます。
最後の要素を取得するために、配列全体を逆にしますか?それは過剰殺人のように聞こえる。 PHPの 、ちょうどend()を使用してください – Jarry
あなたは正しい、Jarry。それも便利で、私の心を完全に崩してしまった。 +1してください。 – maiorano84
複数の要素が必要な場合は、array_sliceを使用します。それでも配列を逆にする必要はありません。あなたも、Benastan。 – benastan
詳細なしでプログラマーの意図を予測することはできません!しかし、この場合、文字列の「最後の文字」を取得しているようです。 –
具体的には、-1が何をキーにすることができるかを知る必要があります。もっとコードをアップロードします! – jrounsav