<?php
$data = array(
array(
'keywordid' => 98,
'keyword' => 'sample keyword 34',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 99,
'keyword' => 'sample keyword 35',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 100,
'keyword' => 'sample keyword 36',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 97,
'keyword' => 'sample keyword 37',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 96,
'keyword' => 'sample keyword 38',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 95,
'keyword' => 'sample keyword 39',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 94,
'keyword' => 'sample keyword 40',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 93,
'keyword' => 'sample keyword 41',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 92,
'keyword' => 'sample keyword 42',
'type' => 'NATURAL',
'longname' => 'UK'
),
array(
'keywordid' => 91,
'keyword' => 'sample keyword 43',
'type' => 'NATURAL',
'longname' => 'UK'
)
);
echo '<h1>Unordered Array</h1><pre>';
print_r($data);
echo '</pre>';
echo '<h1>Order Array</h1>';
echo '<pre>';
$order = array(100, 91, 95);
print_r($order);
echo '</pre>';
$order = array_flip($order);
usort($data, function($a, $b) use($order) {
if (!isset($order[$a['keywordid']])) {
return -1;
}
if (!isset($order[$b['keywordid']])) {
return 1;
}
if ($k1 == $k2) {
return 0;
}
return ($order[$a['keywordid']] > $order[$b['keywordid']]) ? 1 : -1;
});
echo '<h1>Ordered Array</h1><pre>';
print_r($data);
echo '</pre>';
preferences:
35.9 ms | 402 KiB | 5 Q