1. 请写一段PHP代码,确保多个进程同时写入同一个文件成功

     

  •  
function writeData($path, $mode,$data,$max_retries = 10){    $fp = fopen($path, $mode);    $retries = 0;    do{        if ($retries > 0)        {            usleep(rand(1, 10000));        }        echo '等待时间:'.$retries;        $retries += 1;    }while (!flock($fp, LOCK_EX) and $retries<= $max_retries);    //判断是否等于最大重试次数,是则返回false    if ($retries == $max_retries)    {        return false;    }    fwrite($fp, "$data");    flock($fp, LOCK_UN);    fclose($fp);    return true;}

2.array_merge 和 array+array 区别

(1)第一个数组键包含在第二个数组中

  •  
$arr1=array('name'=>'lxw','age'=>12,'sex'=>1);$arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456'); $arr3=array('1'=>'lxw','2'=>12,'3'=>1);$arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456'); echo '<pre>';echo '关联数组 - merger: <br>';print_r(array_merge($arr1,$arr2));echo '<pre>'; echo '<pre>';echo '关联数组 - 加号: <br>';print_r($arr1+$arr2);echo '<pre><hr>'; echo '<pre>';echo '索引数组 - merger: <br>';print_r(array_merge($arr3,$arr4));echo '<pre>'; echo '<pre>';echo '索引数组 - 加号: <br>';print_r($arr3+$arr4);echo '<pre>';

请写一段PHP代码,确保多个进程同时写入同一个文件成功_经验分享

(2)第一个数组存在第二个数组中不存在的键

  •  
$arr1=array('name'=>'lxw','age'=>12,'sex'=>1,'address'=>'bj'); //新增address$arr2=array('name'=>'king','age'=>22,'sex'=>2,'tel'=>'123456'); $arr3=array('1'=>'lxw','2'=>12,'3'=>1,'4'=>'bj');//新增4键名$arr4=array('1'=>'king','2'=>22,'3'=>2,'4'=>'123456'); echo '<pre>';echo '关联数组 - merger: <br>';print_r(array_merge($arr1,$arr2));echo '<pre>'; echo '<pre>';echo '关联数组 - 加号: <br>';print_r($arr1+$arr2);echo '<pre><hr>'; echo '<pre>';echo '索引数组 - merger: <br>';print_r(array_merge($arr3,$arr4));echo '<pre>'; echo '<pre>';echo '索引数组 - 加号: <br>';print_r($arr3+$arr4);echo '<pre>';