关联数组的值

时间:2018-11-20 18:07:36

标签: php arrays sorting

我有一个带有两个键的关联数组

$miarray = array(
    array('factor' => $textof[1],    'valor' => $i1),
    array('factor' => $textof[2],    'valor' => $i2),
    array('factor' => $textof[3],    'valor' => $i3),
    array('factor' => $textof[4],    'valor' => $i4),
    array('factor' => $textof[5],    'valor' => $i5),
    array('factor' => $textof[6],    'valor' => $i6),
    array('factor' => $textof[7],    'valor' => $i7),
    array('factor' => $textof[8],    'valor' => $i8),
    array('factor' => $textof[9],    'valor' => $i9),
    array('factor' => $textof[10],    'valor' => $i10),
);

第一个键具有文本,第二个键具有数字值。我想按第二个键按升序对数组进行排序,并将每对添加到将在php文件末尾回显的变量。

排序我使用以下

array_multisort(array_column($miarray, 'valor'), SORT_ASC, $miarray);

并访问每对

foreach ($miarray as $optionArray){ 
$pr .="$optionArray[\"factor\"] - $optionArray[\"valor\"]<br>";
}

尽管如此,我还是报错了

[2018年11月20日17:58:54 UTC] PHP解析错误:语法错误,意外的''(T_ENCAPSED_AND_WHITESPACE),期望的标识符(T_STRING)或变量(T_VARIABLE)或xxxxxxxxxxxxxxxxx中的数字(T_NUM_STRING)

我看过很多例子,但是都使用print来显示结果数组。 感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

当您访问双引号内的数组键时,可以省去转义的引号,并这样做:

$pr .= "$optionArray[factor] - $optionArray[valor]<br>";

或者,您也可以合并所需的值:

$pr .= $optionArray['factor'] . ' - ' . $optionArray['valor'] . '<br>';

其中任何一种都应该起作用,但是以双引号内的键进行引用是您出错的原因。

在此处详细了解php如何解析变量:http://php.net/manual/en/language.types.string.php#language.types.string.parsing