最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談PHP中foreach/in_array的使用

 更新時(shí)間:2015年11月02日 08:56:11   投稿:hebedich  
本文給大家簡(jiǎn)單總結(jié)了一下PHP中foreach以及in_array的使用,包括在使用中常遇到的問題等信息,非常的實(shí)用,有需要的小伙伴可以參考下。

php在開發(fā)效率很高,這是無(wú)可厚非的,但是卻是在犧牲執(zhí)行效率的。php數(shù)組功能非常強(qiáng)大,但是也要多加考慮,多試幾種情況情況,以防萬(wàn)一,這里,我就簡(jiǎn)單的說兩個(gè)遇到的坑,以后如果有發(fā)現(xiàn)更多的,再補(bǔ)上吧!

  foreach 提供了遍歷數(shù)組的簡(jiǎn)單方式,可以很方便的讀取到數(shù)據(jù)或?qū)ο蟮膬?nèi)容,但是官方文檔說了,由于 foreach 依賴內(nèi)部數(shù)組指針,在循環(huán)中修改其值將可能導(dǎo)致意外的行為。所以,基本上,
1、不要想在循環(huán)內(nèi)部修改里面的值,否則結(jié)果將超出你想要的;
2、使用'&'是一個(gè)安全的方式,雖然很少用到,但是在用到時(shí),在引用結(jié)束后,應(yīng)立即調(diào)用unset函數(shù)銷毀該變量,否則,在接下來(lái)的代碼里,如果有再次使用到此變量,那么循環(huán)的最后一次值就將被修改了,從而得到了意外的值,比如:在列表循環(huán)輸出時(shí),最后一行輸出將會(huì)出現(xiàn)許多亂七八糟的值或者空值。使用unset可解決此問題。

我們來(lái)看個(gè)示例

<?php 
/*-------------------------------------------------------------------------*/ 
/* foreach example 1: value only */ 
echo "foreach example 1: value only ".'<br />'; 
$a = array(1, 2, 3, 17); 
foreach ($a as $v) { 
echo "Current value of ".$a.":". $v."<br />"; 
} 
?> 
// 運(yùn)行結(jié)果 
foreach example 1: value only 
Current value of $a: 1 
Current value of $a: 2 
Current value of $a: 3 
Current value of $a: 17 

  in_array,其含義是檢查前一個(gè)字符串是否存在于后一個(gè)數(shù)組當(dāng)中,而且大多數(shù)情況下,它也是這么工作的,但是當(dāng)后面的數(shù)組是整數(shù)時(shí),如array(0,1,2,3)時(shí),就出問題了,php會(huì)將前的字符串進(jìn)行intval,從而都會(huì)得到0這個(gè)值,那么如果恰巧,你的數(shù)組當(dāng)中有這個(gè)值,那么等式就成立了,是不是又超出了預(yù)期呢?
所以,當(dāng)確定后面的數(shù)據(jù)是整數(shù)時(shí),尤其是還有可能為0(這個(gè)可能代替所有的字符串了),你就千萬(wàn)不能再使用這個(gè)函數(shù)了,可使用key_exists來(lái)代替,但是后面的數(shù)據(jù)則需要使用array_flip進(jìn)行倒轉(zhuǎn)操作了。

我們?cè)賮?lái)看個(gè)示例

function search($keyWord, $stack) {//此處判斷是應(yīng)該更新還是插入

      foreach ($stack as $key => $val) {

        if (in_array($keyWord, $val)) {

          return TRUE;

        }

      }

      return FALSE;

    }

  當(dāng)一個(gè)字符串被當(dāng)作數(shù)組來(lái)去取值時(shí),又會(huì)發(fā)生什么呢?php是一門容錯(cuò)性很強(qiáng)的語(yǔ)言,它會(huì)盡量幫你改正錯(cuò)誤,所以很聰明地將你的引用下標(biāo)轉(zhuǎn)化為整數(shù),當(dāng)然就得到0了,那么字符串下標(biāo)為0取值則又會(huì)得到第一個(gè)字符串的值,是不是又超出了你的預(yù)期呢?解決方法是,在引用下標(biāo)之前,還是確認(rèn)一下這個(gè)變量是不是一個(gè)數(shù)組吧,is_array。

  雖然有許許多多的前輩遇到這樣或那樣的問題,也在不停地說,但是我們終究還是免不了,不停去犯錯(cuò)。這也許就是社會(huì)吧!大家都這么忙,哪有時(shí)間去破解你那爛代碼! 哈哈

相關(guān)文章

  • PHP以mysqli方式連接類完整代碼實(shí)例

    PHP以mysqli方式連接類完整代碼實(shí)例

    這篇文章主要介紹了PHP以mysqli方式連接類完整代碼實(shí)例,對(duì)于學(xué)習(xí)和了解mysqli都有很大的幫助,需要的朋友可以參考下
    2014-07-07
  • php數(shù)組函數(shù)序列之krsort()- 對(duì)數(shù)組的元素鍵名進(jìn)行降序排序,保持索引關(guān)系

    php數(shù)組函數(shù)序列之krsort()- 對(duì)數(shù)組的元素鍵名進(jìn)行降序排序,保持索引關(guān)系

    krsort() 函數(shù)將數(shù)組按照鍵逆向排序,為數(shù)組值保留原來(lái)的鍵??蛇x的第二個(gè)參數(shù)包含附加的排序標(biāo)志
    2011-11-11
  • PHP中unset,array_splice刪除數(shù)組中元素的區(qū)別

    PHP中unset,array_splice刪除數(shù)組中元素的區(qū)別

    php中刪除數(shù)組元素是非常的簡(jiǎn)單的,但有時(shí)刪除數(shù)組需要對(duì)索引進(jìn)行一些排序要求我們會(huì)使用到相關(guān)的函數(shù),這里我們來(lái)介紹使用unset,array_splice刪除數(shù)組中的元素區(qū)別吧
    2014-07-07
  • 一文解決PHP中生成隨機(jī)數(shù)遇到的重復(fù)問題

    一文解決PHP中生成隨機(jī)數(shù)遇到的重復(fù)問題

    項(xiàng)目開發(fā)中很多地方需要用到唯一編碼,比如說訂單、卡券、邀請(qǐng)碼等等,這些編號(hào)是需要嚴(yán)格保證唯一性的,因?yàn)槿绻到y(tǒng)中訂單的編號(hào)存在倆一模一樣的,那造成很多數(shù)據(jù)的錯(cuò)亂,所以本文給大家介紹了如何解決PHP中生成隨機(jī)數(shù)遇到的重復(fù)問,需要的朋友可以參考下
    2023-12-12
  • php備份數(shù)據(jù)庫(kù)類分享

    php備份數(shù)據(jù)庫(kù)類分享

    本文實(shí)例講述了php實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)備份類。分享給大家供大家參考。具體分析如下:這是一個(gè)非常簡(jiǎn)單的利用php來(lái)備份mysql數(shù)據(jù)庫(kù)的類文件,我們只要簡(jiǎn)單的配置好連接地址用戶名與數(shù)據(jù)庫(kù)即可
    2015-04-04
  • php class中public,private,protected的區(qū)別以及實(shí)例分析

    php class中public,private,protected的區(qū)別以及實(shí)例分析

    本篇文章是對(duì)php class中public,private,protected的區(qū)別以及實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 解決php-fpm.service not found問題的辦法

    解決php-fpm.service not found問題的辦法

    這篇文章主要給大家介紹了解決php-fpm.service not found問題的辦法,文中詳細(xì)介紹的解決這個(gè)問題的思路與過程,分享出來(lái)給大家,如果有同樣問題的朋友就不用到處找解決辦法了,下面來(lái)一起看看吧。
    2017-06-06
  • PHP通過header實(shí)現(xiàn)文本文件下載的代碼

    PHP通過header實(shí)現(xiàn)文本文件下載的代碼

    所謂實(shí)現(xiàn)文本文件的下載就是說當(dāng)我們點(diǎn)擊一個(gè)文本文件的鏈接的時(shí)候不是打開這個(gè)文件,而是彈出一個(gè)下載對(duì)話框讓我們下載
    2010-08-08
  • JSON在PHP中的應(yīng)用介紹

    JSON在PHP中的應(yīng)用介紹

    目前,JSON已經(jīng)成為最流行的數(shù)據(jù)交換格式之一,各大網(wǎng)站的API幾乎都支持它。故整理一下PHP語(yǔ)言對(duì)它的支持,這是開發(fā)互聯(lián)網(wǎng)應(yīng)用程序(特別是編寫API)必須了解的知識(shí)
    2012-09-09
  • php實(shí)用代碼片段整理

    php實(shí)用代碼片段整理

    這篇文章主要介紹了php實(shí)用代碼片段,整理歸納了php常見的編程技巧代碼段,包括網(wǎng)頁(yè)、字符串、圖片、日期、數(shù)組及json等操作技巧,需要的朋友可以參考下
    2016-11-11

最新評(píng)論

沙坪坝区| 佛坪县| 榆树市| 平原县| 普定县| 浦城县| 荔波县| 莫力| 翼城县| 措勤县| 富川| 民勤县| 佛坪县| 衢州市| 德安县| 安福县| 岱山县| 关岭| 柳州市| 汉川市| 巍山| 梁河县| 舟山市| 建水县| 济南市| 花莲县| 博罗县| 崇仁县| 玉溪市| 常山县| 龙川县| 天柱县| 盘锦市| 都江堰市| 闽侯县| 台南县| 女性| 武夷山市| 个旧市| 大同县| 寿宁县|