Как получить уникальное значение в многомерном массиве

Я много размышлял о переполнении и в google, но ни один из результатов не работает для моего конкретного случая.

У меня есть массив заполнителей, называемый $ holder, значения следующие:

Array ( [0] => Array ( [id] => 1 [pid] => 121 [uuid] => 1 ) [1] => Array ( [id] => 2 [pid] => 13 [uuid] => 1 ) [2] => Array ( [id] => 5 [pid] => 121 [uuid] => 1 ) ) 

Я пытаюсь вытащить отдельные / уникальные значения из этого многомерного массива. Конечным результатом, который мне нужен, является либо переменная, содержащая (13,121), либо (предпочтительнее) массив следующим образом: Array ([0] => 13 [1] => 121)

Опять я пробовал сериализацию и тому подобное, но не совсем понимаю, как это работает при работе с одним ключом в каждом массиве.

Я старался быть предельно ясным. Надеюсь, это имеет смысл …

Related of "Как получить уникальное значение в многомерном массиве"

Кажется довольно простым: извлеките все значения pid в свой собственный массив, запустите его через array_unique :

 $uniquePids = array_unique(array_map(function ($i) { return $i['pid']; }, $holder)); 

То же самое в длинном:

 $pids = array(); foreach ($holder as $h) { $pids[] = $h['pid']; } $uniquePids = array_unique($pids); 

В php> = 5.5 вы можете использовать array_column :

 array_unique(array_column($holder, 'pid')); 

попробуй это

 foreach($arr as $key => $val) { $new_arr[] = $val['pid']; } $uniq_arr = array_unique($new_arr); 

Просто переберите его и примените array_unique к результату:

 foreach($holder as $yourValues){ $pids[] = $yourValues['pid']; } $yourUniquePids = array_unique($pids); 

Предполагая, что ваш массив называется $ holder:

 $unique = array(); foreach( $holder as $h ) if( ! in_array($h, $unique ) ) $unique[] = $h; 

это несколько более эффективный способ, чем через array_unique, я считаю. Может быть то же самое.

Привет, пожалуйста, попробуйте приведенный ниже код, чтобы получить уникальные значения, а затем отсортировать значения

 <?php $sort_arr = unique_sort($holder, 'pid'); echo "<pre>"; print_r($sort_arr); echo"</pre>"; /*function for get unique value then sort them*/ function unique_sort($arrs, $id) { $unique_arr = array(); foreach ($arrs AS $arr) { if (!in_array($arr[$id], $unique_arr)) { $unique_arr[] = $arr[$id]; } } sort($unique_arr); return $unique_arr; } 

благодаря

Для моей ситуации я использую этот метод

 //get some data from db to array while ($row = mysqli_fetch_assoc($query)){ $data[] = $row; } //display unique value echo "<table>"; $uniq = array(); foreach ($data as $row) { if(!in_array($row['path'], $uniq)) { $uniq[] = $row['path']; echo "<tr>"; echo "<td>"; echo $row['path']; echo "</td>"; echo "<td>"; echo $row['relationship_id']; echo "</td>"; echo "</tr>"; } } echo "</table>";