note 46544 added to function.array-intersect
| From: | blu at dotgeek dot org | Date: | Fri, 15 Oct 2004 00:34:20 +0000 |
| Subject: | note 46544 added to function.array-intersect | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-78561@lists.php.net to get a copy of this message | ||
Note that array_intersect and array_unique doesnt work well with multidimensional arrays.
If you have, for example,
<?php
$orders_today[0] = array('John Doe', 'PHP Book');
$orders_today[1] = array('Jack Smith', 'Coke');
$orders_yesterday[0] = array('Miranda Jones', 'Digital Watch');
$orders_yesterday[1] = array('John Doe', 'PHP Book');
$orders_yesterday[2] = array('Zé da Silva', 'BMW Car');
?>
and wants to know if the same person bought the same thing today and yesterday and use
array_intersect($orders_today, $orders_yesterday) you'll get as result:
<?php
Array
(
[0] => Array
(
[0] => John Doe
[1] => PHP Book
)
[1] => Array
(
[0] => Jack Smith
[1] => Coke
)
)
?>
but we can get around that by serializing the inner arrays:
<?php
$orders_today[0] = serialize(array('John Doe', 'PHP Book'));
$orders_today[1] = serialize(array('Jack Smith', 'Coke'));
$orders_yesterday[0] = serialize(array('Miranda Jones', 'Digital Watch'));
$orders_yesterday[1] = serialize(array('John Doe', 'PHP Book'));
$orders_yesterday[2] = serialize(array('Zé da Silva', 'Uncle Tungsten'));
?>
so that array_map("unserialize", array_intersect($orders_today, $orders_yesterday)) will
return:
<?php
Array
(
[0] => Array
(
[0] => John Doe
[1] => PHP Book
)
)
?>
showing us who bought the same thing today and yesterday =)
[]s
----
Manual Page -- http://www.php.net/manual/en/function.array-intersect.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+46544
Delete -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+46544&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+46544&report=yes
Search -- http://master.php.net/manage/user-notes.php