Мы импортируем наш JSON из API. JSON работает нормально, но неупорядоченно
Мы хотим упорядочить файл JSON по полю имени. Мы использовали uasort, но похоже, что он не действует?
$url = "https://dev-api.ourwebsite.com";
$ch = curl_init();
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set the url
curl_setopt($ch, CURLOPT_URL,$url);
// Execute
$result=curl_exec($ch);
// DUMPING THE JSON
$json=json_decode($result, true);
uasort($json, 'name');
foreach($json as $value) {
$course_name=$value["name"];
}
привет Джефф, спасибо, мы попробовали uasort, но, похоже, это не повлияло на результаты
'name' не является функцией / вызываемой (по крайней мере, не показано здесь), поэтому оно не может иметь эффекта. Вот руководство о том, как использовать uasort.






usort () (или uasort (), если вам нужно сохранить ключи массива) - это то, что вам нужно:
<?php
// mocking some data
$json = [
["name" => "paul"],
["name" => "jeff"],
["name" => "anna"]
];
uasort($json,
// this callable needs to return 1 or -1, depending on how you want it to sort
function($a, $b) {
if ($a['name']>$b['name']) {
return 1;
} else {
return -1;
}
});
var_dump($json);
foreach($json as $value) {
$course_name=$value["name"];
echo $course_name."<br>";
}
// output:
array(3) {
[2]=>
array(1) {
["name"]=>
string(4) "anna"
}
[1]=>
array(1) {
["name"]=>
string(4) "jeff"
}
[0]=>
array(1) {
["name"]=>
string(4) "paul"
}
}
anna
jeff
paul
выберите один из функции сортировки массивов. (usort может быть лучшим для этого)