[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив
moricone2
Здравствуйте, уважаемые форумчане! Есть массив, с повторяющимися значениями и возникла необходимость вывести эти значения,чтобы в дальнейшем провести определенные действия. Что то, я ни как не соображу, как это можно сделать, помогите, пожалуйста.



Спустя 57 минут, 25 секунд (21.04.2012 - 02:05) Pulse написал(а):
Наработки кода, которые у тебя не получаются есть?

Спустя 12 часов, 7 минут, 47 секунд (21.04.2012 - 14:13) killer8080 написал(а):
так?
$a = array(1,3,3,5,6,5,3);
echo '<pre>'.print_r($a, 1).'</pre>';
$a = array_unique(array_diff_assoc($a, array_unique($a)));
echo '<pre>'.print_r($a, 1).'</pre>';

Спустя 8 часов, 30 минут, 41 секунда (21.04.2012 - 22:44) moricone2 написал(а):
$a = array(1,3,3,5,6,5,3);
echo '<pre>'.print_r($a, 1).'</pre>';
$a = array_unique(array_diff_assoc($a, array_unique($a)));
echo '<pre>'.print_r($a, 1).'</pre>';

1)Пример работает, но немного не так, как мне надо;я, наверное, неточно обьяснил.
2)Мне, надо проверить значения в массиве и если, есть в нем одинаковые значения, для них идет дальше определенный код.
3) На счет наработак кода -пробывал я через while, но пока ничего не получилось.

Спустя 11 минут, 8 секунд (21.04.2012 - 22:55) Xes написал(а):
Цитата
2)Мне, надо проверить значения в массиве и если, есть в нем одинаковые значения, для них идет дальше определенный код.

Как то по женски выразился по моему.
Ты сам представляешь как эту фразу в коде реализовывать будешь, и какими функциями, хотябы примерный алгоритм?

Спустя 2 часа, 25 минут, 7 секунд (22.04.2012 - 01:20) killer8080 написал(а):
Цитата (moricone2 @ 21.04.2012 - 21:44)
2)Мне, надо проверить значения в массиве и если, есть в нем одинаковые значения, для них идет дальше определенный код.

а ты хоть запускал мой код?

Спустя 18 минут, 30 секунд (22.04.2012 - 01:39) moricone2 написал(а):
Цитата
Как то по женски выразился по моему.
Ты сам представляешь как эту фразу в коде реализовывать будешь, и какими функциями, хотябы примерный алгоритм?


Нет, не представляю, поэтому и спрашиваю)

Цитата
а ты хоть запускал мой код?


Код запускал;выводит вот так:

Array
(
[0] => 1
[1] => 3
[2] => 3
[3] => 5
[4] => 6
[5] => 5
[6] => 3
)

Array
(
[2] => 3
[5] => 5
)

Мне надо выбрать, в данном примере, такие значения
[1] => 3
[2] => 3
[3] => 5
[5] => 5
[6] => 3



Спустя 29 минут, 54 секунды (22.04.2012 - 02:08) rooor написал(а):
ну так ты уже получил нужные значения)
а дальше цикл и in_array()

Спустя 6 минут, 30 секунд (22.04.2012 - 02:15) killer8080 написал(а):
Цитата (moricone2 @ 22.04.2012 - 00:39)
Мне надо выбрать, в данном примере, такие значения
[1] => 3
[2] => 3
[3] => 5
[5] => 5
[6] => 3

я специально дубли удалил, ну раз они тебе нужны, убери последний array_unique
$a = array_diff_assoc($a, array_unique($a));

Спустя 18 часов, 12 минут, 34 секунды (22.04.2012 - 20:28) moricone2 написал(а):
Цитата
я специально дубли удалил, ну раз они тебе нужны, убери последний array_unique

$a = array_diff_assoc($a, array_unique($a));


Пришлось, все равно, использовать in_array(),тогда выводит, то, что надо.
Всем, кто откликнулся, спасибо.

Спустя 27 минут, 56 секунд (22.04.2012 - 20:55) killer8080 написал(а):
Цитата (moricone2 @ 22.04.2012 - 19:28)
Пришлось, все равно, использовать in_array(),тогда выводит, то, что надо.

не обязательно
$a = array(1,3,3,5,6,5,3);
echo '<pre>'.print_r($a, 1).'</pre>';
$a = array_intersect($a, array_diff_assoc($a, array_unique($a)));
echo '<pre>'.print_r($a, 1).'</pre>';

Спустя 3 часа, 51 минута, 41 секунда (23.04.2012 - 00:47) moricone2 написал(а):
Цитата
не обязательно
$a = array(1,3,3,5,6,5,3);
echo '<pre>'.print_r($a, 1).'</pre>';
$a = array_intersect($a, array_diff_assoc($a, array_unique($a)));
echo '<pre>'.print_r($a, 1).'</pre>';


Да, так еще лучше, кода меньше получается;еще раз спасибо!

Спустя 22 дня, 21 час, 2 минуты, 31 секунда (15.05.2012 - 21:50) moricone2 написал(а):
Здравствуйте! Опять, возник вопрос по этой теме. Есть многомерный массив,

$year = array(
array(
"year" => 1954
),
array(
"year" => 1987
),
array(
"year" => 1954
)
);

Как, убрать повторяющиеся значения из массива(year=>1954)? С помощью функции array_unique не получается.

Спустя 3 часа, 20 минут, 46 секунд (16.05.2012 - 01:10) killer8080 написал(а):
$year = array( 
array(
"year" => 1954
),
array(
"year" => 1987
),
array(
"year" => 1954
)
);


$arr = array();
foreach($year as $k => $v)
$arr[$k] = $v['year'];

$arr = array_keys(array_intersect($arr, array_diff_assoc($arr, array_unique($arr))));
foreach($arr as $k)
unset($year[$k]);
unset($arr);

Спустя 19 минут, 44 секунды (16.05.2012 - 01:30) moricone2 написал(а):
Что- то, вообще, ничего не выводит-может, ошибка какая-та синтаксическая.

Спустя 10 часов, 41 минута, 25 секунд (16.05.2012 - 12:12) killer8080 написал(а):
Цитата (moricone2 @ 16.05.2012 - 00:30)
Что- то, вообще, ничего не выводит-может, ошибка какая-та синтаксическая.

покажи как выводишь

Спустя 5 часов, 46 минут, 5 секунд (16.05.2012 - 17:58) moricone2 написал(а):
Цитата
покажи как выводишь


Работает,спасибо; просто я скопировал код, забыл про вывод $year)

Пока не все понимаю в коде-нада разбираться.
А, в строке $arr[$k] = $v['year']
вместо 'year' можно переменную написать, если массив динамически генерируется?

Спустя 3 часа, 28 минут, 14 секунд (16.05.2012 - 21:26) killer8080 написал(а):
Цитата (moricone2 @ 16.05.2012 - 16:58)
вместо 'year' можно переменную написать, если массив динамически генерируется?

можно, если нужно smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.