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

Форум PHP

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

 

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

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

тема: Сравнение массивов
 
 автор: sidPR   (02.08.2007 в 11:15)   письмо автору
 
 

неподскажите есть к примеру два массива



$text = array('Леша','Дима','Миша' ,'Кирил');
$text2 = array('Александр','Дмитрий','Евгений' ,'Сергей','Кирил');



в $text2 - Есть такоеже слово как и в $text.

Вопрос может есть какаянибуть функция, или как сделать так чтобы в массиве $text2 Пропало это слово или просто не учитывалось...

   
 
 автор: Disable   (02.08.2007 в 11:26)   письмо автору
 
   для: sidPR   (02.08.2007 в 11:15)
 


<?php

$text 
= array('Леша','Дима','Миша' ,'Кирил'); 
$text2 = array('Александр','Дмитрий','Евгений' ,'Сергей','Кирил');

print_r(array_diff($text2,$text));

   
 
 автор: Trianon   (02.08.2007 в 11:35)   письмо автору
 
   для: sidPR   (02.08.2007 в 11:15)
 

Имя Кирилл пишется через два л.
А подобного рода задачи решаются на уровне SQL, уж коль скоро вы массивы из таблиц БД вытаскиваете.

   
 
 автор: sidPR   (02.08.2007 в 11:48)   письмо автору
 
   для: Trianon   (02.08.2007 в 11:35)
 

А как например сделать если у меня в базе имеются записи и мне надо добавить новые записи ... но так если даже в новыйх записях есть тоже самое что и в базе они не добовлялись а новые добовлялись

   
 
 автор: sidPR   (02.08.2007 в 12:10)   письмо автору
 
   для: sidPR   (02.08.2007 в 11:48)
 

вот я чтото изобразил подобное


function uniquer($table, $where, $id, $array_keyword){
    $select = "SELECT * FROM `$table` WHERE `$where` = '$id'";
    $results = mysql_query($select);
    for($val = array();$row = mysql_fetch_assoc($results);$val[] = $row['keyword']);  
    return (array_diff($array_keyword,$val));; 
}

но при работе функция выдает порой Warning: array_diff() [function.array-diff]: Argument #1 is not an array in ....


может есть способ проще ?

   
 
 автор: sidPR   (02.08.2007 в 12:18)   письмо автору
 
   для: sidPR   (02.08.2007 в 12:10)
 

Причем не понятно почему выдает ошибку если
на выдаче после

function uniquer($table, $where, $id, $array_keyword){
    $select = "SELECT * FROM `$table` WHERE `$where` = '$id'";
    $results = mysql_query($select);
    for($val = array();$row = mysql_fetch_assoc($results);$val[] = $row['keyword']);  
    print_r($val);
    print_r($array_keyword);
    return (array_diff($array_keyword,$val));; 
}



Array
(
[0] => gfsfa
[1] => fasgh
[2] => fasf
[3] => gasfg
)
Array
(
[0] => gfsfa
[1] => fasgh
[2] => fasf
[3] => gasfg
)

выдает Warning: array_diff() [function.array-diff]: Argument #1 is not an array in ....
:=\

   
 
 автор: sidPR   (02.08.2007 в 13:14)   письмо автору
 
   для: sidPR   (02.08.2007 в 12:18)
 

все разобрался =)
а не подскажите если есть к примеру такая строка
function add_mass_keyword($page_id, $file){
    if($file){
    $file_array = file($file);
    for ($i = 0; $i < count($file_array); $i++){
    $keyword = array();
    list($keyword, $weight) = explode("\t", $file_array[$i]);

    }
}
}


у меня $keyword
выводится строчками а как мне это в массив просто превратить ?

   
Rambler's Top100
вверх

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