配列関数 2022年10月02日 14:39 編集
入力配列から単一のカラムの値を返す
ということだが、多次元配列から特定のキーの値だけを取り出して新たな配列を作ることができる。例えば
ということだが、多次元配列から特定のキーの値だけを取り出して新たな配列を作ることができる。例えば
$data['Y4vC8DOE'] = array('title'=>'strpos', 'category'=>'String関数');のような多次元配列$dataがある場合、
$data['O3LPSQ4p'] = array('title'=>'preg_match', 'category'=>'PCRE関数');
$data['D7gFDJzL'] = array('title'=>'date_create', 'category'=>'日付・時刻関数');
$data['zQVvImlQ'] = array('title'=>'array_multisort', 'category'=>'配列関数');
$data['EJTCFyBt'] = array('title'=>'is_array', 'category'=>'変数操作関数');
$array = array_column($data, 'category');の結果は
print_r($array);
counter:356
配列関数 2017年04月05日 10:29 編集
配列の差を計算する
配列を他の配列と比較し、 他の配列には存在しない要素だけを返す。
配列を他の配列と比較し、 他の配列には存在しない要素だけを返す。
$list1 = array(1,7,3,4,5);の結果は
$list2 = array(1,2,3,4,5);
print_r( array_diff($list1,$list2) );
Array ( [1] => 7 )
counter:2,884
配列関数 2016年10月05日 15:40 編集
配列のキーと値を反転する
配列の場合、値が重複していても問題ないが、同じキーの配列の値は1個だけとなる。
したがって元の配列で値が重複していた場合、反転すると同じキーが複数存在することになるが、この場合、最後のキーだけが採用されることになる。
配列の場合、値が重複していても問題ないが、同じキーの配列の値は1個だけとなる。
したがって元の配列で値が重複していた場合、反転すると同じキーが複数存在することになるが、この場合、最後のキーだけが採用されることになる。
$ar = array('ab'=>'xy', 'cd'=>'yz', 'ef'=>'xy' );
$ar2 = array_flip($ar);
foreach ($ar2 as $key=>$val) {
echo "$key → $val\n";
}
実行結果
xy → ef
yz → cd
counter:2,706
配列関数 2017年01月26日 16:34 編集
配列の共通項を得る
$array1 =array('apple','melon','banana','peach','orange');
$array2 = array('melon','lemon','peach');
print_r(array_intersect($array1,$array2));
実行結果
Array
(
[1] => melon
[3] => peach
)
counter:2,855
配列関数 2016年10月03日 20:08 編集
複数の多次元の配列をソートする
本来の使用法とは違うが、シュウォーツ変換風の使用例
$list = array('abc,52,オレンジ','def,32,りんご','hij,6,バナナ','klm,21,キウイ');
$sort = array();
foreach ($list as $_) {
$tmp = explode(',',$_);
if (isset($tmp[1])) {
$sort[] = $tmp[1];
}
}
array_multisort($sort,SORT_ASC,SORT_NUMERIC,$list);
foreach ($list as $_) {
echo "$_\n";
}
実行結果
hij,6,バナナ
klm,21,キウイ
def,32,りんご
abc,52,オレンジ
counter:2,876
配列関数 2017年02月08日 20:48 編集
配列の一部を展開する
元の配列は変わらない。
元の配列は変わらない。
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // "c", "d", "e" を返す
$output = array_slice($input, -2, 1); // "d" を返す
$output = array_slice($input, 0, 3); // "a", "b", "c" を返す
counter:2,935
配列関数 2021年04月15日 16:56 編集
別名:arsort
キーと値の関係を維持して、値でソートする。asortは昇順、arsortは降順$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");の結果は
asort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
c = apple b = banana d = lemon a = orange
counter:568
戻る
■ファイルアップロード、返信、過去ログ生成、隠しパラメータ送信によるスパム投稿対策、スライドロックによるスパム投稿対策
オプションは[[bbs('lock=1|max_log=100|item=thread')]]のように指定
bbs.phpのヘルプ
掲示板を作成する■ファイルアップロード、返信、過去ログ生成、隠しパラメータ送信によるスパム投稿対策、スライドロックによるスパム投稿対策
オプションは[[bbs('lock=1|max_log=100|item=thread')]]のように指定
指定できるオプション
- form (現在の設定はform=up)
- form=up(フォームを上に表示) form=down(フォームを下に表示)
- item (現在の設定はitem=time)
- デフォルトの記事表示順を指定
item=time(投稿順) item=thread(スレッドごとに表示)
- max_log (現在の設定はmax_log=100)
- 現行ログの保存数。これを超えると過去ログに移動。
例 max_log=50
- max_past (現在の設定はmax_past=100)
- 過去ログに保存する記事数。これを超えると過去ログファイルを新たに作成。
例 max_past=100
- page_line (現在の設定はpage_line=10)
- 1ページに表示する記事数。これを超えると次のページに表示
例 page_line=10
- lock (現在の設定はlock=1)
- スライダで投稿ボタンをロックする lock=1で表示する
例 lock=1
- perm_tag (現在の設定はperm_tag=)
- 許可するタグ。複数ある場合は;(セミコロン)で区切る。
有効になるのはタグ名だけを<>で囲った場合とその閉じタグだけ。styleなどは指定できない。
例 perm_tag=pre;h1
- nameless (現在の設定はnameless=id)
- 投稿者名未入力で投稿した場合、表示される名前を指定。'id'にすると、日付とIPアドレスを元にしたIDを表示
例 nameless=id
- titleless (現在の設定はtitleless=無題)
- タイトル未入力で投稿した場合、表示されるタイトルを指定。
例 titleless=タイトルなし
- hide_bbs (現在の設定はhide_bbs=0)
- デフォルトでフォームと投稿内容を隠す hide_bbs=1で隠す
例 hide_bbs=1
- show_text (現在の設定はshow_text=)
- 添付したtextファイルの内容を表示する show_text=txt;phpのように表示するテキストファイルの拡張子を指定する。複数ある場合は;(セミコロン)で区切る
例 show_text=txt;log
counter:2,980