note 40046 modified in function.array-unique by vrana
| From: | vrana@php.net | Date: | Tue, 17 Aug 2004 14:50:21 +0000 |
| Subject: | note 40046 modified in function.array-unique by vrana | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-80091@lists.php.net to get a copy of this message | ||
//Modify
Object Unique
<?php
class foo {
var $_name;
var $_age;
function foo($name,$age=NULL) { $this->_name = $name; $this->_age = $age; }
//function get() { return $this->_name; }
//function set($name,$age=NULL) { $this->_name = $name; $this->_age = $age; }
}
function DistinctOn ($obj, $item) {
$out = array();
$list = array();
foreach ($obj as $key=>$so) {
if (!in_array($so->$item, $list)) {
echo "key = $key,so = $so,item = $item,IFlist = ";print_r($list);echo
"<br>";
$list[] = $so->$item;//°ËÁõ¹è¿
$out[$key] = $so;
}
echo "Forlist = ";print_r($list);echo "<br>";
}
return $out;
}
$foo_obj[0] = new foo('tom',20);
$foo_obj[1] = new foo('paul',66);
$foo_obj[2] = new foo('tom',23);
$item = '_name';
$result = DistinctOn ($foo_obj, $item);
while(list($k,$v) = each($result)) {
print "K = ";print_r($k);
print ",V = ";print_r($v);
print "<br>";
}
//key = 0,so = Object,item = _name,IFlist = Array ( ) ,Forlist = Array ( [0] => tom )
//key = 1,so = Object,item = _name,IFlist = Array ( [0] => tom ) ,Forlist = Array ( [0] =>
tom [1] => paul )
//Forlist = Array ( [0] => tom [1] => paul )
//K = 0,V = foo Object ( [_name] => tom [_age] => 20 )
//K = 1,V = foo Object ( [_name] => paul [_age] => 66 )
print "<br><br>";
$item = '_age';
$result = DistinctOn ($foo_obj, $item);
while(list($k,$v) = each($result)) {
print "K = ";print_r($k);
print ",V = ";print_r($v);
print "<br>";
}
//key = 0,so = Object,item = _age,IFlist = Array ( ) ,Forlist = Array ( [0] => 20 )
//key = 1,so = Object,item = _age,IFlist = Array ( [0] => 20 ) ,Forlist = Array ( [0] => 20
[1] => 66 )
//key = 2,so = Object,item = _age,IFlist = Array ( [0] => 20 [1] => 66 ) ,
// Forlist = Array ( [0] => 20 [1] => 66 [2] => 23 )
//K = 0,V = foo Object ( [_name] => tom [_age] => 20 )
//K = 1,V = foo Object ( [_name] => paul [_age] => 66 )
//K = 2,V = foo Object ( [_name] => tom [_age] => 23 )
?>
--was--
//Modify
Object Unique
class foo {
var $_name;
var $_age;
function foo($name,$age=NULL) { $this->_name = $name; $this->_age = $age; }
//function get() { return $this->_name; }
//function set($name,$age=NULL) { $this->_name = $name; $this->_age = $age; }
}
function DistinctOn ($obj, $item) {
$out = array();
$list = array();
foreach ($obj as $key=>$so) {
if (!in_array($so->$item, $list)) {
echo "key = $key,so = $so,item = $item,IFlist = ";print_r($list);echo
"<br>";
$list[] = $so->$item;//°ËÁõ¹è¿
$out[$key] = $so;
}
echo "Forlist = ";print_r($list);echo "<br>";
}
return $out;
}
$foo_obj[0] = new foo('tom',20);
$foo_obj[1] = new foo('paul',66);
$foo_obj[2] = new foo('tom',23);
$item = '_name';
$result = DistinctOn ($foo_obj, $item);
while(list($k,$v) = each($result)) {
print "K = ";print_r($k);
print ",V = ";print_r($v);
print "<br>";
}
//key = 0,so = Object,item = _name,IFlist = Array ( ) ,Forlist = Array ( [0] => tom )
//key = 1,so = Object,item = _name,IFlist = Array ( [0] => tom ) ,Forlist = Array ( [0] =>
tom [1] => paul )
//Forlist = Array ( [0] => tom [1] => paul )
//K = 0,V = foo Object ( [_name] => tom [_age] => 20 )
//K = 1,V = foo Object ( [_name] => paul [_age] => 66 )
print "<br><br>";
$item = '_age';
$result = DistinctOn ($foo_obj, $item);
while(list($k,$v) = each($result)) {
print "K = ";print_r($k);
print ",V = ";print_r($v);
print "<br>";
}
//key = 0,so = Object,item = _age,IFlist = Array ( ) ,Forlist = Array ( [0] => 20 )
//key = 1,so = Object,item = _age,IFlist = Array ( [0] => 20 ) ,Forlist = Array ( [0] => 20
[1] => 66 )
//key = 2,so = Object,item = _age,IFlist = Array ( [0] => 20 [1] => 66 ) ,
// Forlist = Array ( [0] => 20 [1] => 66 [2] => 23 )
//K = 0,V = foo Object ( [_name] => tom [_age] => 20 )
//K = 1,V = foo Object ( [_name] => paul [_age] => 66 )
//K = 2,V = foo Object ( [_name] => tom [_age] => 23 )
http://php.net/manual/en/function.array-unique.php