"Orange","Banana","Grape","Apple","Flower");
echo "
//物件陣列(把陣列當作物件來操作):ArrayObject(陣列)";
echo "////////////////////////////////////////////////////
";
echo "//物件陣列:\$a=new ArrayObject()
";
echo "//印出物件陣列:print_r(\$a)
";
echo "//印出物件陣列:var_dump(\$a)
";
echo "ArrayIterator::current( void ) //返回當前陣列元素
";
echo "ArrayIterator::key(void) //返回當前陣列key
";
echo "ArrayIterator::next (void)//指向下個陣列元素
";
echo "ArrayIterator::rewind(void )//重置陣列指標到頭
";
echo "ArrayIterator::seek()//查找陣列中某一位置
";
echo "ArrayIterator::valid()//檢查陣列是否還包含其他元素
";
echo "ArrayObject::append()//添加新元素
";
echo "ArrayObject::__construct()//構造一個新的陣列物件
";
echo "ArrayObject::count()//返回反覆運算器中元素個數
";
echo "ArrayObject::getIterator()//從一個陣列物件構造一個新反覆運算器
";
echo "ArrayObject::offsetExists(mixed index )//判斷提交的值是否存在
";
echo "ArrayObject::offsetGet()//指定 name 獲取值
";
echo "ArrayObject::offsetSet()//修改指定 name 的值
";
echo "ArrayObject::offsetUnset()//刪除資料
";
echo "
";
$objay = new ArrayObject($fruit);
print_r($objay);
echo "
";
var_dump($objay);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//取出值:->offsetGet:\$objay->offsetGet(2)
";
echo "
offsetGet印出第2個".$objay->offsetGet(2);
echo "
offsetGet印出第2個:\$objay->2 出現錯誤";
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//非編號指標物件陣列取出值,offsetGet:\$objay->offsetGet('李大同')
";
$score["李大同"] = 90;
$score["張花花"] = 85;
$score["林美美"] = 60;
$score["宋妮妮"] = 99;
$score["吳盼盼"] = 75;
$objary2 = new ArrayObject($score);
echo "
offsetGet印出李大同分數".$objary2->offsetGet('李大同');
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//計算物件陣列ArrayObject的數目:\$a->count()
";
echo "物件陣列的數目有".$objay->count();
echo "
物件陣列的數目有".count($objay);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//foreach迴圈印出物件陣列ArrayObject: foreach(\$arrayObj as \$i=>\$v){)
";
foreach($objay as $i=>$v){
echo $i.':'.$v."
";
}
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//新增一個元素到ArrayObject陣列最後:->append(元素1)
";
$objay->append("mango");
print_r($objay);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//新增二個元素以上到ArrayObject陣列最後:->append(陣列),或是->append(array(元素1,元素2))
";
$objay->append(array("lemon","papaya"));
print_r($objay);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//檢查某個指標(文字或編號)是否存在:->offsetExists(編號)
";
$data = array('name'=>'張花花','email'=>'huahua@domain.com','score'=>70);
$objay = new ArrayObject($data);
echo '檢查:score指標是否存在?:'. $objay->offsetExists('score')."
";
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//修改某個指標(文字或編號)的內容:->offsetSet(編號,數值)
";
$objay = new ArrayObject($score);
$objay->offsetSet('李大同','0');
echo '李大同最新的分數:'. $objay->offsetGet('李大同')."
";
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//前往某個指標(編號):\$iterator->seek(編號)
";
$objay = new ArrayObject($score);
$iterator = $objay->getIterator();
if($iterator->valid()){
$iterator->seek(3);
echo '宋妮妮最新的分數:'.$iterator->current();
}
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//到下一筆:\$iterator->next()
";
echo "//到第一筆:\$iterator->rewind()
";
echo "//目前指標:\$iterator->key()
";
echo "//目前內容:\$iterator->current()
";
echo '到下一筆'."
";;
$iterator->next();
echo '目前指標:'.$iterator->key()."
";;
echo '目前內容:'.$iterator->current()."
";;
echo '到第一筆'."
";;
$iterator->rewind();
echo '目前指標:'.$iterator->key()."
";;
echo '目前內容:'.$iterator->current()."
";;
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "////////////////////////////////////////////////////////////////////
";
echo "////////////////////////////////////////////////////////////////////
";
echo "////////////////////////////////////////////////////////////////////
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//ArrayObject物件陣列若要用->取出值,則宣告時必須:= new ArrayObject(\$data, ArrayObject::ARRAY_AS_PROPS)
";
$data = array('name'=>'張花花','email'=>'huahua@domain.com','score'=>70);
$arrayObj = new ArrayObject($data, ArrayObject::ARRAY_AS_PROPS);
//$arrayObj = new ArrayObject($data);
echo "// 若是宣告成\$arrayObj = new ArrayObject(\$data);, 則不能用->,必須用->offsetGET()
";
echo '姓名:'. $arrayObj->name .',Email:' . $arrayObj->email."
";
echo '姓名:'. $arrayObj->offsetGet('name') .',Email:' . $arrayObj->offsetGet('email')."
";
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//ArrayObject物件陣列= new ArrayObject(\$data, ArrayObject::ARRAY_AS_PROPS)
";
echo "//計算物件陣列ArrayObject的數目:count(陣列)
";
echo "物件陣列的數目有".count($arrayObj);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//ArrayObject物件陣列= new ArrayObject(\$data, ArrayObject::ARRAY_AS_PROPS)
";
echo "//印出全部:物件陣列ArrayObject的數目:var_dump(陣列)
";
echo "印出全部物件陣列".var_dump($arrayObj);
echo "
印出全部物件陣列".print_r($arrayObj);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//foreach迴圈印出物件陣列ArrayObject: foreach(\$arrayObj as \$i=>\$v){)
";
foreach($arrayObj as $i=>$v){
echo $i.':'.$v."
";
}
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//ArrayObject物件陣列,不能使用二維陣列
";
$data2 = array(array('name'=>'李大同','email'=>'daotong@gmail.com','score'=>90),
array('name'=>'張花花','email'=>'huahua@domain.com','score'=>70),
array('name'=>'林美美','email'=>'huahua@domain.com','score'=>100),
array('name'=>'宋妮妮','email'=>'huahua@domain.com','score'=>85),
array('name'=>'吳盼盼','email'=>'huahua@domain.com','score'=>65));
$arrayObj2 = new ArrayObject($data2);
//echo '姓名:'. $arrayObj2[1]->offsetGet(1);
//echo '姓名:'. $arrayObj2[1]->name;
/*
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//搜尋字串:ArrayIterator::seek('字串',陣列)。\$key是找到的位置,找不到傳回false
";
$txt= "Grape";
$key = ArrayIterator::seek($txt,$objay);
if(!$key) echo "找不到".$txt;
else echo "找到".$txt;
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//刪除陣列元素:array_pop(陣列)
";
array_pop($fruit);
print_r($fruit);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//新增陣列元素(從陣列前面):array_unshift(陣列,元素1,元素2...)
";
array_unshift($fruit,"PineApple","berry");
print_r($fruit);
echo "
";
echo "////////////////////////////////////////////////////////////////////
";
echo "//給定每個陣列元素相同起:array_fill(index,number,value)
";
$color = array();
$color = array_fill(0,5,"blue");
print_r($color);
echo $color[2]."
";
echo "
";
echo "////取出一個亂數//////////////////////////////////////////
";
echo "//亂數取出陣列元素的數目:array_rand(陣列,亂數數目)
";
$key = array_rand($fruit,1);
echo $key."
";
echo $fruit[$key]."
";
echo "
";
echo "/////取出三個亂數///////////////////////////////////////////
";
$key = array_rand($fruit,3);
echo $key[0]."
";
echo $fruit[$key[0]]."
";
echo $key[1]."
";
echo $fruit[$key[1]]."
";
echo $key[2]."
";
echo $fruit[$key[2]]."
";
echo "
";
echo "//////////////////////////////////////////////
";
echo "//取出陣列的前面幾個,變成一個新陣列:array_slice(陣列,數目)
";
echo "//array_slice(array,start,length,preserve)
";
echo "fruit: ";
print_r($fruit);
echo "
";
$fruit2 = array_slice($fruit,1,5,true);
print_r($fruit2);
echo "
";
//反向
$fruit2 = array_slice($fruit,1,5,false);
print_r($fruit2);
echo "
";
echo "//////////////////////////////////////////////
";
echo "//印出游標位置的元素內容,方法一:pos(陣列)
";
echo "//印出游標位置的元素內容,方法二:current(陣列)
";
echo "目前陣列游標位置的內容為:".pos($fruit)."
";
echo "目前陣列游標位置的內容為:".current($fruit)."
";
echo "
";
echo "//////////////////////////////////////////////
";
echo "//移動游標到陣列最後:end(陣列)
";
end($fruit);
echo "目前陣列游標位置的內容為:".current($fruit)."
";
echo "
";
echo "//////////////////////////////////////////////
";
echo "//目前陣列的游標到位置(index編號):key(陣列)
";
echo "目前陣列游標位置編號為:".key($fruit)."
";
echo "
";
echo "//////////////////////////////////////////////
";
echo "//往上移動一筆):pre(陣列)
";
prev($fruit);
echo "目前陣列游標位置編號為:".key($fruit)."
";
echo "目前陣列游標位置的內容為:".current($fruit)."
";
*/
?>