我想重新排列数组的顺序($activity_names
)
$next_ordernr = 1000;
foreach( $activity_names as $term_id=>$activityarea_name) {
$onr = $custom_ordernrs[$term_id];
if ((int)$onr === 0) {$onr = $next_ordernr; $next_ordernr++;}
$activity_names[$term_id]['reorder']= $onr;
}
我理解我应该怎么做,但是当我尝试将键添加到现有数组(这应该是简单的部分; - )时,我有点卡住。)。
我收到了这个警告:
Warning: Illegal string offset 'reorder' in ...
。
之前不存在“重新排序”键,但我认为我可以在上面将键重新排序添加到现有数组中。
$next_ordernr = 1000;
foreach( $activity_names as $term_id=>$activityarea_name) {
$onr = $custom_ordernrs[$term_id];
if ((int)$onr === 0) {$onr = $next_ordernr; $next_ordernr++;}
$activity_names[$term_id]= $onr;
}
按预期工作。
我只想在现有数组中添加一个键。我在俯瞰什么?
更新
$ activity_names
数组可能如下所示:
$activity_names[24] = 'Activityname1';
$activity_names[36] = 'Activityname2';
$activity_names[14] = 'Activityname3';
$activity_names[54] = 'Activityname4';
$activity_names[104] = 'Activityname5';
UPDATE2
在考虑它时,我可能正在接近这个......
我想根据$activity_names
- 数组
$custom_ordernrs
数组的顺序
$activity_names
和$custom_ordernrs
- 数组可能如下所示:
$activity_names[24] = 'Activityname1';
$activity_names[36] = 'Activityname2';
$activity_names[14] = 'Activityname3';
$activity_names[54] = 'Activityname4';
$activity_names[104] = 'Activityname5';
$custom_ordernrs[24] = 5;
$custom_ordernrs[36] = 4;
$custom_ordernrs[14] = 3;
$custom_ordernrs[54] = 2;
$custom_ordernrs[104] = 1;
应该在数组中产生这个顺序:
$activity_names[104] = 'Activityname5';
$activity_names[54] = 'Activityname4';
$activity_names[14] = 'Activityname3';
$activity_names[36] = 'Activityname2';
$activity_names[24] = 'Activityname1';
答案 0 :(得分:0)
$activity_names['your_key']= $value;
答案 1 :(得分:0)
如果有人偶然发现同样的问题......
以另一种方式处理该问题。我重新安排了$custom_ordernrs
- 数组(而不是尝试将键添加到现有数组$activity_names
)并在此基础上创建一个临时数组,然后将$activity_names
替换为该临时数组:
asort($custom_ordernrs); //Sort from low to high and maintin indexes(keys)
$temp = array();
foreach($custom_ordernrs as $term_id=>$an) {
$temp[$term_id] = $activity_names[$term_id];
}
$activity_names = $temp;