PHPでは、 Array_combine()は、2つの配列を連想配列に結合する非常に便利な関数です。この関数の関数は、1つの配列の値を新しい配列のキーとして使用し、他の配列の値を新しい配列の値として使用することです。基本的な構文は次のとおりです。
array_combine(array $keys, array $values): array|false
$キー:連想配列のキーを含む配列。
$値:対応するキーの値を含む配列。
array_combine()関数は、$ keys arrayの要素を$ keys arrayの要素と$ values arrayの要素を値として返す新しい配列を返します。渡された配列の長さが一貫していない場合、またはパラメーターの1つが配列ではない場合、関数はfalseを返します。
実際の開発では、 array_combine()に渡されたパラメーターなど、関数パラメーターが期待を満たさない状況に遭遇することがよくあります。それで、これらの問題に効果的に対処する方法は?
PHPはIS_ARRAY()関数を提供して、変数が配列であるかどうかを確認します。 is_array()を使用して、両方のパラメーターがarray_combine()を呼び出す前に有効な配列であることを確認できます。
$keys = ['name', 'age', 'city'];
$values = ['John', 25, 'New York'];
if (is_array($keys) && is_array($values)) {
$combinedArray = array_combine($keys, $values);
print_r($combinedArray);
} else {
echo "Error: Both parameters must be arrays.";
}
この方法により、非アレイタイプに合格すると、プログラムはエラーを直接報告することはありませんが、友好的なエラーメッセージが出力されることが保証されます。
array_combine()では、渡された2つの配列が同じ長さである必要があります。長さが一貫していない場合、 falseが返されます。これを避けるために、呼び出す前に2つの配列の長さを確認できます。
$keys = ['name', 'age', 'city'];
$values = ['John', 25];
if (is_array($keys) && is_array($values)) {
if (count($keys) === count($values)) {
$combinedArray = array_combine($keys, $values);
print_r($combinedArray);
} else {
echo "Error: Arrays must have the same length.";
}
} else {
echo "Error: Both parameters must be arrays.";
}
この例では、2つの配列の長さが一貫していることを確認し、それらが一貫していない場合、エラーメッセージが与えられます。
配列の長さが一貫していない場合にプログラムを実行し続ける場合は、デフォルト値の短い配列の穴を開けることを検討してください。このようにして、2つの配列の長さが異なっていても、 array_combine()はまだ正常に実行できます。
$keys = ['name', 'age', 'city'];
$values = ['John', 25];
// 欠損値を入力します
if (count($keys) > count($values)) {
$values = array_merge($values, array_fill(0, count($keys) - count($values), null));
} elseif (count($values) > count($keys)) {
$keys = array_merge($keys, array_fill(0, count($values) - count($keys), 'default_key'));
}
$combinedArray = array_combine($keys, $values);
print_r($combinedArray);
ここでは、 array_fill()関数を使用して欠損値を記入して、2つの配列が同じ長さであることを確認します。
array_combine()は、2つの配列を連想配列に組み合わせた非常に便利な関数です。パラメーターを渡すときにエラーを回避するために、 is_array()関数を使用して、呼び出し前に入力タイプを検証し、配列の長さが一貫しているかどうかを確認し、必要に応じて塗料操作を実行できます。
これらの方法を通じて、非アレイまたはアレイを通過する一貫性のない長さによって引き起こされるエラーを効果的に回避し、プログラムの堅牢性を確保することができます。