配列$ poleが$ transposeの配列にどのように変化するのか理解できません。このphpコードはどのように機能しますか(call_user_func_arrayとarray_map)?
どのように動作しますか?コメントには、両方の配列がどのように見えるか、スクリプトを実行する特定の時点で何が表示されているかが表示されます。
これらの例では、NはNULLを意味します。 $transpose
の配列にNULLSを埋め込む方法は?私はそこに1つのNULLを入力します、私は理解しますが、私は他のすべてのNULLSの起源を理解できません。
<?php
$numbers = array(5, 3, 1, 3, 8, 7, 4, 1, 1, 3);
foreach ($numbers as $e){
$poles[] = array_fill(0, $e, 1);
}
array_unshift($poles, NULL);
echo "<pre>" . var_dump($poles) . "</pre>";
/*var_dump($poles);
[0] N
[1] 1 1 1 1 1
[2] 1 1 1
[3] 1
[4] 1 1 1
[5] 1 1 1 1 1 1 1 1
[6] 1 1 1 1 1 1 1
[7] 1 1 1 1
[8] 1
[9] 1
[10] 1 1 1
*/echo "</br>------------------------------</br>";
$transpose = call_user_func_array('array_map', $poles);
echo "<pre>" . var_dump($transpose) . "</pre>";
/*var_dump($transpose);
[0] 1 1 1 1 1 1 1 1 1 1
[1] 1 1 N 1 1 1 1 N N 1
[2] 1 1 N 1 1 1 1 N N 1
[3] 1 N N N 1 1 1 N N N
[4] 1 N N N 1 1 N N N N
[5] N N N N 1 1 N N N N
[6] N N N N 1 1 N N N N
[7] N N N N 1 N N N N N
*/echo "</br>------------------------------</br>";
チャットでタキをするには、さらに4ポイント必要です。あなたはそれを投票してもらえますか?私はPHPを学んでいるので、その機能が必要です。または、少なくとも私が***になるように投票しないでください。 –
2番目の配列はどのように3つの要素を失いますか?私もその部分を理解していない。 –
'array_map'は一度に1つの配列だけを処理し、他のパラメータはコールバック関数に渡される第2のパラメータです。また、あなたのコールバック関数は 'NULL'ですので、それはすべての値を返します私は驚きです。 – Havenard