/ / PHP新しい2次元配列に値をコピーします。最初の数字は「0」に置き換えられます - php、配列、2次元

PHPの値を新しい2次元配列にコピーすると、最初の数字は "0"に置き換えられ続けます - php、arrays、2d

$count = count($itemArray);

// Create a new array slot to store the item #
$itemArray[$count] = $matches[1][$i];
$itemArray[$count][0] = 0;

これはループの一部です($ iがインデックスです)。 ループのこの部分が発生するたびに、数値は$ matches配列から$ itemArrayに正常にコピーされます。ただし、数値全体の最初の桁は毎回0に置き換えられます。私はphpの2次元配列に新しい種類のものなので、問題は2次元構文にあると思います。

値がどうなるかの例(それらは同じであるべきです)

$matches[1][$i] = 250924377376
$itemArray[$count] = 050924377376

回答:

回答№1の場合は3

実際には2次元配列を作成していません。

あなたが持っている $itemArray これは配列です。

あなたがするとき $itemArray[$count] = $matches[1][$i]; あなたは設定しています $itemArray[$count] 文字列に変換する。

あなたがするとき $itemArray[$count][0] = 0; あなたはPHPに最初の文字を設定するように言っています $itemArray[$count] 文字列にキャストされる0に。

昔のPHPでは、これを行うことができました。

// create a string
$string = "Hello World!";

// reference the 2nd character in string
echo $string[1]; // "e"

PHPは文字列の配列表記を推奨しなくなりました。 $string{1} 代わりに、配列表記はまだ機能します。

中括弧の使い方は、文字列インデックスアクセスから配列アクセスを明確にすることであったと思いますが、古い角括弧はまだ機能します。

2次元配列が必要な場合は、これを実行してください。

$itemArray[$count] = array(); // make $itemArray[$count] an array
$itemArray[$count][0] = 0; // set index 0 to (int)0
$itemArray[$count][1] = $matches[1][$i]; // set index 1 to the match