用途
新着
履歴
分類

PHP 配列の追加、削除、編集

PHP 配列の追加、削除、編集
PHP 配列の追加、削除、編集
配列のシリアライズを作成し、パラメータによって追加、編集、削除を実装したサンプルです。

パラメータを付けないで実行すると、適当な配列のシリアライズが保存されます。

再度パラメータを付けてアクセスすると、追加、編集、削除を実行します。

modeの値をinsert, update, removeに指定してそれぞれの切り分けをしています。

DBを使う前の「とりあえず作ってみた」などに使えるサンプルです。

$filename = "../serial/test.data";


if($_GET){
	$str = $_GET;

}else{
//	$param = 'mode=insert&name=hoge';
//	$param = 'mode=remove&name=123';
//	parse_str($param, $str);
}
		
if(file_exists($filename)) {

	$array = unserialize(file_get_contents($filename));

}else{

	$array = [
	    ['id' => 0,'name' => 'りんご','price' => 100,'color' => '赤'],
	    ['id' => 1,'name' => 'みかん','price' => 120,'color' => '橙'],
	    ['id' => 2,'name' => 'ぶどう','price' => 300,'color' => '紫']
	];

	save_serial($array);
}


if($str['mode'] == 'insert'){

	$id = date('YmdHis');

	$array[] = [
		'id' => $id,'name' => $str['name'],'price' => $str['price'],'color' => $str['color'] 
	];

	save_serial($array);

}elseif($str['mode'] == 'remove'){

	$id = $str['id'];
	foreach($array as $k => $v){
		if($v['id'] ==  $id){
			$splice_key = $k;
		}
	}

	if($splice_key){
		array_splice($array, $splice_key, 1);
	}

	save_serial($array);

}elseif($str['mode'] == 'update'){

	$id = $str['id'];
	$str_replace = $str;
	unset($str_replace['mode']);
	foreach($array as $k => $v){
		if($v['id'] ==  $id){
			$array[$k] = array_replace($array[$k],$str_replace);
		}
	}

	save_serial($array);

}

if($str['mode']){
	a($str['mode']);
}	

p($array);



function save_serial($array){
	global $filename;
	file_put_contents($filename, serialize($array), LOCK_EX);

}

function p($a){
	echo '<'.'pre>';
	print_r($a);
	echo '<'.'/pre>';
}
function a($a){
	echo '<'.'div>';
	print_r($a);
	echo '<'.'/div>';
}
公開 2020-04-23 20:57:11
更新 2020-04-23 21:11:44
このページの二次元コード

同じカテゴリーのサンプル

人気のサンプル

search -  category -  about
© 2020 kipure
Top