Laravel / PHP, как использовать массив карт и сортировать - PullRequest
0 голосов
/ 19 октября 2018

Я создаю приложение, используя laravel / php.Я использовал, как отобразить и отсортировать мой массив.Кто-нибудь может мне помочь, как это исправить?У меня есть два разных массива.Первая картинка - это метка, а вторая - мои данные.

Я пытаюсь сопоставить метку с данными и отсортировать данные от минимальных до максимальных. Но я сделал это только с помощью javascript.

label data

Вот мой пример кода.

$arrayOfObjIssues = $arrayLabelIssues.map(function($d, $i) {
return {
    label: $d,
  data: $arrayDataIssues[$i] || 0
  };
});

  $sortedArrayOfObjIssues = $arrayOfObjIssues.sort(function($a, $b) {
    return $b.data>$a.data;
  });

$newArrayLabelIssues = [];
$newArrayDataIssues = [];
$sortedArrayOfObjIssues.forEach(function($d){
  $newArrayLabelIssues.push($d.label);
  $newArrayDataIssues.push($d.data);
});

Как я могупочини это?Любая помощь приветствуется.Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

Попробуйте (особенно вам не нужна коллекция Laravel):

// Create empty array that will contain $arr1 as keys and $arr2 as values
$newArray = [];
foreach($arr1 as $i => $item) {
  // Match the two arrays together. Get the same index from the 2nd array.
  $newArray[$item] = $arr2[$i];
}
// Sort the list by value
asort($newArray);
0 голосов
/ 19 октября 2018

С использованием коллекций Laravels это довольно просто:

$keys = ['B', 'C', 'A'];
$values = [1, 2, 3];

$collection = \Illuminate\Support\Collection::make($keys); // state: ['B', 'C', 'A']
$combined = $collection->combine($values); // state: ['B' => 1, 'C' => 2, 'A' => 3]
$sorted = $combined->sortKeys(); // state: ['A' => 3, 'B' => 1, 'C' => 2]

$sorted->toArray(); // to get the result back as array like shown above

Для дальнейшего ознакомления взгляните на доступные методы сбора .

0 голосов
/ 19 октября 2018

В PHP мы используем -> вместо . точечная нотация .

И если $arrayLabelIssues - это простой массив PHP, вы должны сначала преобразовать его в коллекцию Laravel, чтобы иметь возможность использовать его функции.

Таким образом, вы бы сделали что-то вроде этого:

$arrayLabelIssues = collect($arrayLabelIssues); // now it's a Laravel Collection object

// and you can use functions like map, foreach, sort, ...
$arrayLabelIssues->map(function($item) {
    // ... your code 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...