判斷式已經完成
下方有一個問題點的註解需要幫助
$data=array('filename'=>array());
$new_dataname=array('name'=>'jack','count'=>'0','data'=>array(array('time'=>'0:00','script'=>'ggg')));
array_push($data['filename'],$new_dataname);
$log='';
$findfilename=$data['filename'];
if($data['filename']){
//輸入變數為jack的時候
$filename='jack';
for($i=0;$i<count($data['filename']);$i++){
if ($data['filename'][$i]['name'] == $filename){
$findfilename=array($data['filename'][$i]);
$log='true';
//break;
}else{
$log='false';
}
//問題點
if($log=='true'){
$gg='gg';
$new_dataname=array('time'=>'1:11','script'=>'fff');
array_push($findfilename[0]['data'],$new_dataname);
}else{
$new_dataname=array('name'=>$filename,'count'=>'0','data'=>array(array('time'=>'0:00','script'=>'ggg')));
array_push($data['filename'],$new_dataname);
$gg='hh';
}
}
}else{
echo 'no data';
$new_dataname=array('name'=>'jack','count'=>'0','data'=>array(array('time'=>'0:00','script'=>'g88')));
array_push($data['filename'],$new_dataname);
}
print_r($data);
我希望進到問題點的的時候$data的輸出是
Array
(
[filename] => Array
(
[0] => Array
(
[name] => jack
[count] => 0
[data] => Array
(
[0] => Array
(
[time] => 0:00
[script] => ggg
)
[1] => Array
(
[time] => 1:11
[script] => fff
)
)
)
)
)
想請教一下這個的知識點
跟是否有更簡單的寫法感謝!!
線上執行php網址:https://c.runoob.com/compile/1
你要的是把它變字串嗎?
$dataStr = print_r($data, true);
這關係有點複雜,
由右往左處理應該比較好處理,
先處理右邊陣列,
$data2 = [
['time' => '0:00', 'script' => 'ggg'],
['time' => '1:11', 'script' => 'fff'],
];
然後再加上一層
$data3 = [];
$data3['name'] = 'jack';
$data3['count'] = 0;
$data3['data'] = $data2;
然後左邊再加進來
$filename = [];
array_push($filename, $data3);
最後再加外層
$data = [
'filename' => $filename,
];
我完成了我想要的輸出了 不過看起來是滿難看的
感覺你提供的方式應該可以讓我的code更乾淨
感謝大大的幫助!
如果有幫助的話,
最佳解答麻煩一下.