I want to rearrange order of an array ($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;
}
I understand how I should do it, but I'm kind of stuck when trying to add a key to an existing array (which should be the easy part ;-)).
I get this warning:
Warning: Illegal string offset 'reorder' in ...
.
The 'reorder' key does not exist before, but I thought I could like above just to add the key reorder into that existing array.
$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;
}
Works as expected.
I just want to add a key to an existing array. What am I overlooking?
UPDATE
$activity_names
array could look like this:
$activity_names[24] = 'Activityname1';
$activity_names[36] = 'Activityname2';
$activity_names[14] = 'Activityname3';
$activity_names[54] = 'Activityname4';
$activity_names[104] = 'Activityname5';
UPDATE2
When thinking of it, I am maybe approaching this incorrectly...
I want to rearrange order of $activity_names
array based on $custom_ordernrs
- array
The $activity_names
and $custom_ordernrs
- array could look like this:
$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;
should result in this order in array:
$activity_names[104] = 'Activityname5';
$activity_names[54] = 'Activityname4';
$activity_names[14] = 'Activityname3';
$activity_names[36] = 'Activityname2';
$activity_names[24] = 'Activityname1';