0

どうすればこれを行うことができますか?ここに表示されているコードが機能しません

for($i=0;i<count($cond);$i++){
    $cond[$i] = $cond[$i][0];
}
4

5 に答える 5

1
// Make sure you have your first array initialised here!
$array2 = array();
foreach ($array AS $item)
{
    $array2[] = $item[0];
}

後で同じ変数名を持ちたいと仮定すると、新しい配列を古い配列に再割り当てできます。

$array = $array2;
unset($array2); // Not needed, but helps with keeping memory down

また、配列の内容に応じて、次のようなことができる場合があります。

$array = array_merge(array_values($array));
于 2009-08-04T08:07:49.697 に答える
1

ソース配列が数値インデックスでない場合、問題が発生する可能性があります。代わりにこれを試してください:

$destinationArray = array();
for ($sourceArray as $key=>$value) {
    $destinationArray[] = $value[0]; //you may want to use a different index than '0'
}
于 2009-08-04T08:12:49.810 に答える
1

前述のように、コードはさまざまな状況で正しく機能しません。次の値で配列を初期化してみてください。

$cond = array(5=>array('4','3'),9=>array('3','4'));

解決策として、次のコードも読みやすくなっています。

//explain what to do to every single line of the 2d array
function reduceRowToFirstItem($x) { return $x[0]; }

// apply the trasnformation to the array
$a=array_map('reduceRowTofirstItem',$cond);

詳細な説明については、配列マップのリファレンスを参照してください。

また、 array_walkを使用してわずかなバリエーションを選択することもできます(配列の「その場で」操作します)。この関数は値を返さず、パラメータは参照によって渡されることに注意してください。

function reduceToFirstItem(&$x) { $x=$x[0]; }
array_walk($cond, 'reduceToFirstItem');
于 2009-08-04T08:30:48.980 に答える
0

それはうまくいくはずです。うまくいかないのはなぜですか?どんなエラーメッセージが表示されますか? これは私が使用するコードです:

$inArr;//This is the 2D array
$outArr = array();
for($i=0;$i<count($inArr);$i++){
        $outArr[$i] = $inArr[$i][0];
}
于 2009-08-04T08:08:31.847 に答える