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

Форум PHP

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

 

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

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

тема: Сравнить два массива
 
 автор: gOFREe   (30.06.2009 в 19:05)   письмо автору
 
 

есть два массива

$a = array(3,9);
$b = array(0,1,2,3,4,5,6,7,8,9);

Не пойму как при совпадении чисел вывести истину.
Делаю так:

for($i=0;$i<count($b);$i++) {
$c = $b[$i] == $a[$i] ? 'TRUE' : 'FALSE';
}

Если я правильно понял, то при таком варианте он сравнивает 3 с 0 и 9 с 1

  Ответить  
 
 автор: sim5   (30.06.2009 в 19:08)   письмо автору
 
   для: gOFREe   (30.06.2009 в 19:05)
 

И прям таки и ошибок не получаете при таком сравнении?

  Ответить  
 
 автор: gOFREe   (30.06.2009 в 19:08)   письмо автору
 
   для: sim5   (30.06.2009 в 19:08)
 

неа, он выводит FALSE во всем цикле

  Ответить  
 
 автор: sim5   (30.06.2009 в 19:25)   письмо автору
 
   для: gOFREe   (30.06.2009 в 19:08)
 

Включите вывод ошибок, ибо у вас в массиве $a нет элментов с индексами выше 1.

  Ответить  
 
 автор: gOFREe   (30.06.2009 в 20:59)   письмо автору
 
   для: sim5   (30.06.2009 в 19:25)
 

Хм... а какой еще может быть способ, что бы он пробегал по всему массиву или может функция какая есть?

  Ответить  
 
 автор: DEM   (30.06.2009 в 21:27)   письмо автору
 
   для: gOFREe   (30.06.2009 в 20:59)
 

если вам надо сравнить только два элемента (количество элементов в массиве А), тогда:

for($i=0;$i<count($a);$i++) {  //у вас было count($b)
$c = ($b[$i] == $a[$i] )? 'TRUE' : 'FALSE'; 
}


Но у вас $c будет равен FALSE или TRUE только по последний элементам...
лучше написать

for($i=0;$i<count($a);$i++) {  //у вас было count($b)
$c[$i] = ($b[$i] == $a[$i] )? 'TRUE' : 'FALSE'; 
}

  Ответить  
 
 автор: gOFREe   (30.06.2009 в 21:59)   письмо автору
 
   для: DEM   (30.06.2009 в 21:27)
 

Не, это не то, при этом еще должен полностью выводиться второй массив.

  Ответить  
 
 автор: Drago   (30.06.2009 в 22:16)   письмо автору
 
   для: gOFREe   (30.06.2009 в 21:59)
 


<?php

$a 
= array(3,9);
$b = array(0,1,2,3,4,5,6,7,8,9);

for(
$i=0$i count($b); $i++)
    echo 
$b[$i], ' - 'var_dump(in_array($b[$i], $a)), '<br>';

  Ответить  
 
 автор: gOFREe   (30.06.2009 в 22:19)   письмо автору
 
   для: Drago   (30.06.2009 в 22:16)
 

О! спасибо! Не заметил..

  Ответить  
 
 автор: gOFREe   (30.06.2009 в 22:18)   письмо автору
 
   для: gOFREe   (30.06.2009 в 21:59)
 

Мдаа... пошарив по форуму нашел замечательную функцию in_array();
Спасибо всем. Как всегда туплу... ))

  Ответить  
 
 автор: mikha   (02.07.2009 в 17:03)   письмо автору
 
   для: gOFREe   (30.06.2009 в 22:18)
 

Вот вам ещё до комплекта.., что бы не изобретать велосипедов)))
array_change_key_case — Возвращает массив, символьные ключи которого преобразованы в верхний или нижний регистр символов
array_chunk — Разбить массив на части
array_combine — Создать новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
array_count_values — Подсчитать количество всех значений массива
array_diff_assoc — Вычислить расхождение в массивах с дополнительной проверкой индекса
array_diff_key — Вычислить расхождение в массивах, сравнивая ключи
array_diff_uassoc — Вычислить расхождение в массивах с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
array_diff_ukey — Вычислить расхождение в массивах, используя функцию обратного вызова для сравнения ключей
array_diff — Вычислить расхождение в массивах
array_fill_keys — Fill an array with values, specifying keys
array_fill — Заполнить массив определенным значением
array_filter — Применяет фильтр к массиву, используя функцию обратного вызова
array_flip — Поменять местами значения массива
array_intersect_assoc — Вычислить схождение массивов с дополнительной проверкой индекса
array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
array_intersect_uassoc — Вычислить пересечение массивов с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
array_intersect_ukey — Вычислить пересечение массивов, используя функцию обратного вызова для сравнения ключей
array_intersect — Вычислить схождение массивов
array_key_exists — Проверить, присутствует ли в массиве указанный ключ или индекс
array_keys — Выбрать все ключи массива
array_map — Применить функцию обратного вызова ко всем элементам указанных массивов
array_merge_recursive — Рекурсивно слить два или большее количество массивов
array_merge — Слить два или большее количество массивов
array_multisort — Сортировать несколько массивов или многомерные массивы
array_pad — Увеличить размер массива до заданной величины
array_pop — Извлечь последний элемент массива
array_product — Вычислить произведение значений массива
array_push — Добавить один или несколько элеметов в конец массива
array_rand — Выбрать одно или несколько случайных значений из массива
array_reduce — Итеративно уменьшить массив к единственному значению, используя функцию обратного вызова
array_reverse — Возвращает массив с элементами в обратном порядке
array_search — Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
array_shift — Извлечь первый элемент массива
array_slice — Выбрать срез массива
array_splice — Удалить последовательность элементов массива и заменить её другой последовательностью
array_sum — Вычислить сумму значений массива
array_udiff_assoc — Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
array_udiff_uassoc — Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов функцию обратного вызова
array_udiff — Вычислить расхождение массивов, используя для сравнения функцию обратного вызова
array_uintersect_assoc — Вычислить пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
array_uintersect_uassoc — Вычислить пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений функцию обратного вызова
array_uintersect — Вычислить пересечение массивов, используя для сравнения значений функцию обратного вызова
array_unique — Убрать повторяющиеся значения из массива
array_unshift — Добавить один или несколько элементов в начало массива
array_values — Выбрать все значения массива
array_walk_recursive — Рекурсивно применить пользовательскую функцию к каждому элементу массива
array_walk — Применить пользовательскую функцию к каждому члену массива
array — Создать массив
arsort — Отсортировать массив в обратном порядке, сохраняя ключи
asort — Отсортировать массив, сохраняя ключи
compact — Создать массив, содержащий названия переменных и их значения
count — Посчитать количество элементов массива или количество свойств объекта
current — Возвратить текущий элемент массива
each — Возвратить текущую пару ключ/значение из массива и сместить его указатель
end — Установить внутренний указатель массива на его последний элемент
extract — Импортировать переменные из массива в текущую символьную таблицу.
in_array — Проверить, присутствует ли в массиве значение
key — Выбрать ключ из ассоциативного массива
krsort — Отсортировать массив по ключам в обратном порядке
ksort — Отсортировать массив по ключам
list — Присвоить переменным из списка значения подобно массиву
natcasesort — Отсортировать массив, используя алгоритм "natural order" не принимая во внимание регистр символов
natsort — Отсортировать массив, используя алгоритм "natural order"
next — Передвинуть внутренний указатель массива на одну позицию вперёд
pos — Alias of current()
prev — Передвинуть внутренний указатель массива на одну позицию назад
range — Создать массив, содержащий диапазон элементов
reset — Установить внутренний указатель массива на его первый элемент
rsort — Отсортировать массив в обратном порядке
shuffle — Перемешать массив
sizeof — Alias of count()
sort — Отсортировать массив
uasort — Отсортировать массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
uksort — Отсортировать массив по ключам, используя пользовательскую функцию для сравнения ключей
usort — Отсортировать массив по значениям используя пользовательскую функцию для сравнения элементов
ЗЫ. Скачайте уже манул.. и заглядывайте в него иногда)))

  Ответить  
 
 автор: mikha   (02.07.2009 в 17:22)   письмо автору
 
   для: gOFREe   (30.06.2009 в 22:18)
 

<?php
$a 
= array(3,9); $b = array(0,1,2,3,4,5,6,7,8,9);
$c array_intersect($a$b);
//echo "<pre>"; print_r($c); echo "</pre>";
if(count($c)) echo "TRUE";
?>

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

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