0
私はPHPマニュアルサイト上の配列ソート機能を見つけましたが、それは警告を生成しています。どんなアドバイスがもらえました。 線 "foreachの($キー=> $列として$データ)" の無効な引数がforeachのために供給される()..中:生成なぜこのphp配列のソート関数は警告を生成するのですか?
function fnArrayOrderby(){
//function to sort a database type array of rows by the values in one or more column
//source http://php.net/manual/en/function.array-multisort.php - user notes
//example of use -> $sorted = fnArrayOrderby($data, 'volume', SORT_DESC, 'edition', SORT_ASC);
$args = func_get_args(); //Gets an array of the function's argument list (which can vary in length)
//echo "sorting on ".$args[1];
$data = array_shift($args); //Shift an element off the beginning of array
foreach ($args as $n => $field) {
if (is_string($field)) {
$tmp = array();
foreach ($data as $key => $row)
$tmp[$key] = $row[$field];
$args[$n] = $tmp;
}
}
$args[] = &$data;
call_user_func_array('array_multisort', $args);
return array_pop($args);
}
警告が
- PHPの警告であります
- PHPの警告: array_multisort():引数#5は、ラインcall_user_func_array( 'array_multisort'、$ argsを)の配列またはソート フラグ...であることが期待される
array_shiftは配列を返しません – tkausl
@tkausl:配列内の値が配列でない限り。 –
いいえ、私はそれを言い換えましょう: 'array_shift'は渡された配列を返しませんが、渡された配列からシフトされた値を返します。この関数は配列を参照して元の配列を変更します。 – tkausl