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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: пересечение массивов

Сообщения:  [1-10]   [11-13] 

 
 автор: stigler   (05.06.2010 в 16:54)   письмо автору
 
   для: .....   (04.06.2010 в 23:09)
 

ААААААААААееееееееееееееееее!!!!! спасибо всем откликнувшимся! век не забуду =))))

  Ответить  
 
 автор: .....   (04.06.2010 в 23:09)
 
   для: stigler   (04.06.2010 в 18:02)
 

Вроде по логике должно быть
$array2[] = $row->name_goods;

из simplexml-елемента(-строки) из-за причудливости вроде нельзя извлечь первый байт как просто из строки $string[0], если память не изменяет

интересно откуда взялось array(1) {[0]=>NULL}
, наверное из-за
>$icq = array_intersect ($arrey, $array2);
опечатки в имени переменной

  Ответить  
 
 автор: stigler   (04.06.2010 в 18:02)   письмо автору
 
   для: Tonik992   (03.06.2010 в 23:56)
 

хррррррррррр
ну чего тут ещё не хватает * бьюсь головой об стол *
<?
$hostname 
"localhost";
$username "h8823_2";
$password "2";
$dbName "h8823_2";

/* Таблица MySQL, в которой хранятся данные */
$userstable "a1a_script_step_pass_param";

/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");

@
mysql_select_db("$dbName") or die("Не могу выбрать базу данных "); 

$query ="SELECT SUBSTRING(param FROM 6) 
FROM `a1a_script_step_pass_param` 
WHERE param  LIKE 'pass_%'
AND `value` != ''
LIMIT 0 , 30"


  
$result MYSQL_QUERY($query); 
  if(!
$result) exit("Ошибка выполнения запроса - ".mysql_error());




    
/* Печать результатов в HTML */

while ($line mysql_fetch_row($result)) { 
$array[] = $line[0];

}
print 
'<pre>';
var_dump($array);


        


    
/* Освобождение resultset */
    
mysql_free_result($result);

    
/* Закрытие соединения */
    
mysql_close($link);


$xml="
<digiseller.request>
<id_group>75096</id_group>
<page>1</page>
<rows>200</rows>
<order>price</order>
</digiseller.request>
"
;
function 
_GetAnswer($address$xml){
  
$ch curl_init($address);
  
curl_setopt($chCURLOPT_HEADER0);
  
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
  
curl_setopt($chCURLOPT_POST,1);
  
curl_setopt($chCURLOPT_POSTFIELDS$xml);
  
$result=curl_exec($ch);
  return 
$result;
}
$answer=_GetAnswer("http://shop.digiseller.ru/xml/personal_goods.asp"$xml);
$xmlres simplexml_load_string($answer);


foreach (
$xmlres->rows->row as $row) {
$array2[] = $row->name_goods[0];
}

print 
'<pre>';
var_dump($array2);

    
$icq array_intersect ($arrey$array2);
$icq2[] = $icq[0];

print 
'<pre>';
var_dump($icq2);
?>


выводит это
array(3) {
[0]=>
string(7) "4362363"
[1]=>
string(1) "6"
[2]=>
string(3) "666"
}
array(2) {
[0]=>
object(SimpleXMLElement)#7 (1) {
[0]=>
string(5) "35632"
}
[1]=>
object(SimpleXMLElement)#8 (1) {
[0]=>
string(7) "4362363"
}
}
array(1) {
[0]=>
NULL
}

  Ответить  
 
 автор: Tonik992   (03.06.2010 в 23:56)   письмо автору
 
   для: stigler   (03.06.2010 в 23:11)
 

А ты смотрел как работает пересечение? Одинаковые значения объединяются в одно (ключи сохраняются)... Ты проверял, есть ли одинаковое хоть что-нибудь в этих двух массивах??




array array_intersect ( array $array1, array $array2 [, array $ ...] )


Функция array_intersect() возвращает массив, содержащий значения массива array1, которые содержат все перечисленные в аргументах массивы. Обратите внимание, что ключи сохраняются.


Пример 216. Пример использования array_intersect()

<?php
$array1 
= array ("a" => "green""red""blue");
$array2 = array ("b" => "green""yellow""red");
$result array_intersect ($array1$array2); 
В результате выполнения переменная $result будет содержать Array
(
    [
a] => green
    
[0] => red

?>

  Ответить  
 
 автор: stigler   (03.06.2010 в 23:11)   письмо автору
 
   для: stigler   (03.06.2010 в 23:09)
 

если

foreach ($xmlres->rows->row as $row) {
print"<br>";
print"$row->name_goods";
print"<br>";
}
print '<pre>';
var_dump($row->name_goods);

то
object(SimpleXMLElement)#2 (1) {
[0]=>
string(7) "4362363"
}

почему то одно значение из массива

  Ответить  
 
 автор: stigler   (03.06.2010 в 23:09)   письмо автору
 
   для: .....   (03.06.2010 в 22:31)
 


foreach ($xmlres->rows->row as $row) {
print"<br>";
print"$row->name_goods";
print"<br>";
}
$array2[] = $xmlres[0];

var_dump($array2);

    $icq = array_intersect ($arrey, $arrey2);
print "$icq";
?>

воттак???
в случае с var_dump($array2); получается это
array(1) { [0]=> object(SimpleXMLElement)#2 (8) { ["retval"]=> string(1) "0" ["retdesc"]=> object(SimpleXMLElement)#4 (0) { } ["id_group"]=> string(5) "75096" ["cnt_goods"]=> string(1) "2" ["pages"]=> string(1) "1" ["page"]=> string(1) "1" ["order"]=> string(5) "price" ["rows"]=> object(SimpleXMLElement)#3 (2) { ["@attributes"]=> array(1) { ["cnt"]=> string(1) "2" } ["row"]=> array(2) { [0]=> object(SimpleXMLElement)#6 (6) { ["@attributes"]=> array(1) { ["id"]=> string(1) "1" } ["id_goods"]=> string(6) "963688" ["name_goods"]=> string(5) "35632" ["price"]=> string(4) "0,04" ["currency"]=> string(3) "USD" ["credit_price"]=> object(SimpleXMLElement)#8 (0) { } } [1]=> object(SimpleXMLElement)#7 (6) { ["@attributes"]=> array(1) { ["id"]=> string(1) "2" } ["id_goods"]=> string(6) "963686" ["name_goods"]=> string(7) "4362363" ["price"]=> string(7) "4362363" ["currency"]=> string(3) "USD" ["credit_price"]=> object(SimpleXMLElement)#9 (0) { } } } } } }

пересечение по преждену молчил =(

  Ответить  
 
 автор: .....   (03.06.2010 в 22:31)
 
   для: stigler   (03.06.2010 в 22:10)
 

$row->name_goods тоже не массив

print '<pre>';
var_dump($row->name_goods);

  Ответить  
 
 автор: stigler   (03.06.2010 в 22:10)   письмо автору
 
   для: ....   (03.06.2010 в 21:53)
 

заминил кусок кода на это
/* Печать результатов в HTML */

while ($line = mysql_fetch_row($result)) { 
$array[] = $line[0];

}

var_dump($array);

  print "$array";

выводит это array(3) { [0]=> string(7) "4362363" [1]=> string(1) "6" [2]=> string(3) "666" } Array
пересечение попрежнему не работает

  Ответить  
 
 автор: ....   (03.06.2010 в 21:53)
 
   для: ........   (03.06.2010 в 21:50)
 

забыл удалитьть строчку
foreach ($line as $col_value)

  Ответить  
 
 автор: ........   (03.06.2010 в 21:50)
 
   для: stigler   (03.06.2010 в 21:34)
 

var_dump() — Dumps information about a variable

while ($line = mysql_fetch_row($result)) {
foreach ($line as $col_value)
$array[] = $line[0];
}

var_dump($array)

  Ответить  

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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