TOP ▲
itcore TOP プログラムパーツ
uKeyDataArrayGet KEY+DATAのデータを配列に入れる。最初のセパレータで区切る。同じKEYがあった場合は最後が有効になる。 | itcore 2017年
PHP関数
<?php
include_once "uToLF.func";
// KEY+DATAのデータを配列に入れる。最初のセパレータで区切る。同じKEYがあった場合は最後が有効になる。
function uKeyDataArrayGet($sep, $data) {
$data2 = uToLF($data); // 改行コードをLFにする。
$a_line = explode("\n", $data2); // 行の配列
$a_KeyData = array(); // 返す配列
foreach ($a_line as $line) {
if ("" == trim($line)) continue; // 空行は無視
$pos = strpos($line, $sep); // 最初のセパレータで区切る。
if (0 === $pos) continue; // 行頭にセパレータがある行も無視
if (false === $pos) {
$a_KeyData[$line] = ""; // セパレータがない場合は行全体をKEYとしDATAは空とする。
} else {
$a_KeyData[substr($line, 0, $pos)] = substr($line, $pos + 1); // $a_KeyData[$key] = $data;
}
}
return $a_KeyData;
}
?>
単体テスト 実行
<?php include "uKeyDataArrayGet.func"; ?>
<?php
$data = <<< EOT
KEY1 DATA1 コメント
キー2 データ2
キー3
無効データ
キー2 重複データ
EOT;
$a_ret = uKeyDataArrayGet(" ", $data);
foreach ($a_ret as $key => $data) {
echo "key=$key data=$data<br>\n";
}
?>
<?php include "uJsClose.func"; print(uJsClose()); // 閉じるボタン ?>