2009年2月23日 星期一

尋找陣列中的某一值 in_array & array_search

範例是假設我的陣列是 $array=array("a","b","c");

原本我是先使用 array_search("a",$array);

竟發生找不到的情況 ...

http://liaosankai.pixnet.net/blog/post/19272841

結果在這邊找到解答

那不如直接乖乖用 in_array("a",$array)不就好了 @@?

那 array_search 用處呢 ?

我看書上寫說 array_search 還有一個選用參數:如果值為 true,還將在陣列中檢查指定值的型別 ... 呃 ... 不懂 ~_~

總之就是變成 array_search("a",$array,true) ... 不過好像也是找不到,不知道要用在哪

上網查一下有關這兩個函數
http://blog.cjcht.com/index.php/2008/
in_array 與 array_search 的不同

数组键值、元素的查找

array_key_exists():在数组中检查某一键名是否存在。它仅关心键名,与其对应的值无关,也就是说即使被找到的键名对应的元素值为null,它仍会返回true.
in_array():在数组中检查某一值是否存在,该值可以为array,且函数本身是区分大小写的。另外当第三参数strict的值为TRUE时,则对数据的类型也进行严格判断。
array_search():与in_array()基本相同,唯一不同的是array_search()如果找到相应值则是返回其相应的键名。如有多个符合条件的值,则返回第一次匹配的键名。
array_keys():返回数组中的所有数字或者字符串的键名。当第二参数search_value被指定时,其功能类似于 array_search(),不同的是,它可以将符合条件值的键名逐一返回。
array_values():与array_keys()相对应,前者是返回数组的值。后者返回数组的键名/索引值。

我還是不很懂 ... = = ...

暫時先用 in_Array 就好了

原本我用 array_search 的時候,是用 array_unshift 去把陣列開頭 push 一位進去 ...

因為就是 0(第一位)無法解讀,所以推一個空白的進去就好了~啊哈哈~很笨的方法 ...

沒有留言: