Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить повторяющиеся значения из многомерного массива ?
 
 автор: aetern   (04.07.2011 в 00:55)   письмо автору
 
 

Есть многомерный массив (очень большой), наподобие этого:
$input =array(
array("name1", "text1"),
array("name1", "text1"),
array("name2", "text2"),
array("name2", "text2"),
array("name3", "text3")); 


Как удалить из него повторяющиеся значения, чтобы он стал таким:
$input =array(
array("name1", "text1"),
array("name2", "text2"),
array("name3", "text3")); 


array_unique - не помогает, как быть - не знаю, подскажите, пожалуйста.

  Ответить  
 
 автор: ONYX   (04.07.2011 в 02:49)   письмо автору
 
   для: aetern   (04.07.2011 в 00:55)
 

<?
$input 
=array( 
array(
"name1""text1"), 
array(
"name1""text1"), 
array(
"name2""text2"), 
array(
"name2""text2"), 
array(
"name3""text3")); 

$copy $input;
$cnt count($copy);

for(
$i 0$i $cnt$i ++){
  for(
$j $i+1$j $cnt$j++){
    if(
$copy[$i][0] === $copy[$j][0]) unset($copy[$j]);
  }
}
print_r($copy);
?>

  Ответить  
 
 автор: aetern   (04.07.2011 в 09:39)   письмо автору
 
   для: ONYX   (04.07.2011 в 02:49)
 

Спасибище за решение!

  Ответить  
 
 автор: Гость   (04.07.2011 в 10:05)   письмо автору
 
   для: ONYX   (04.07.2011 в 02:49)
 

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

<?
$input 
= array(  
            array(
"name1""text1"),  
            array(
"name1""text2"),  
            array(
"name2""text3"),  
            array(
"name2""text2"),  
            array(
"name3""text3")
        ); 

  Ответить  
 
 автор: aetern   (04.07.2011 в 10:12)   письмо автору
 
   для: Гость   (04.07.2011 в 10:05)
 

Вы все правильно поняли. Еще раз спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования