配列の値を検索array_search()関数

array_search()関数(配列の値を検索)

返り値 検索する値が見つかった場合は値のインデックスキーを、 その他の場合falseを返す。

<?php

$a = array("PHP", "リファレンス", "テスト", "PHP");
var_dump(array_search("PHP", $a));   //int(0)
var_dump(array_search("php", $a));  //bool(false)
 
$b = array("リファレンス", "PHP", "テスト", "PHP");
var_dump(array_search("PHP", $b));   //int(1) はじめに一致したインデックスきー

?>

implode()関数とexplode()関数

1. implode(配列要素を文字列により連結する)

<?php
  
$array = array("PHP3", "PHP4", "PHP5", "PHP6");
$str = implode ("-", $array);
echo $str;  //PHP3-PHP4-PHP5-PHP6 

?>  

2. explode(文字列を文字列により分割する)

<?php

$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

?>

基本的な正規表現

メタ文字(普通の文字以上の意味を含んでいる)

. $ [ ] * + ? | ( )

(1) . とにかくなんでもいい一文字

私は...が..        //私はうどんが嫌い、私は早起きが苦手  
TEST\.LOG      //TEST.LOG  

(2) ^ $ 行の先頭と最後

^ありがとう    //ありがとうと言いたい  
ありがとう$    // 君に心よりありがとう  
^ありがとう$  //ありがとう  
  
^^ $$             //メタ文字検索  

(3) * + ? 同じ文字の繰り返し

*(直前の文字がないか、直前の文字が1個以上連続するという意味)  

+(最低でも1個は + の直前の文字がある)

?(直前の文字がまったくないか、1つだけあるという意味)  

おー*い      //おい、おーーい、おーーーーーい
おー+い     //おーい、おーーい、おーーーーい
おー?い     //おい、おーい  

(4) .* なんでもいい文字の連続

 とにかくなんでもいい1文字がまったくないか、なんでもいい文字が連続するか  

 君が好き.*。   //君が好きです。君が好きかもね。君が好きだっちゅうの。 

(5) | いずれかの文字列

 IBM|マイクロソフト|Apple|ネットスケープ     //IBM or マイクロソフト or Apple or ネットスケープ  

(6) [] 指定した文字のどれか

  明日は[晴曇雨]です    //明日は晴ですor明日は曇ですor明日は雨です  

  A[A-Z0-9]CCC   
  [.*]         //. か * のいずれかの文字。いずれの文字もメタ文字ではない。  

(7) () グループ化

 (じゃ)+ーん            //じゃーん じゃじゃーん じゃじゃじゃーん  

sublime text3 のstfpを使ってサーバーにつなぐ

  1. sftpとは

sshで暗号化された通信路を使って安全にファイルを送受信するプロトコル
また、それを利用してUNIXなどで暗号化ファイル送受信を行うコマンド。

  1. localへのつなぎ方

1 sublime text3にsftpをインストール

「tools > command pallete」 → 「Package Control: install Package」→「「sftp」と検索」

2 公開鍵の用意

3 sshのconfig設定

4 sublime text3にsftp-config.jsonの作成

「files > SFTP/FTP」→ 「Setup Server」

 // sftp, ftp or ftps
    "type": "sftp",

    "save_before_upload": true,
    "upload_on_save": true,
    "sync_down_on_open": false,
    "sync_skip_deletes": false,
    "sync_same_age": true,
    "confirm_downloads": false,
    "confirm_sync": true,
    "confirm_overwrite_newer": false,
    
    "host": "sftp.server",
    "user": "sftp_user",
    "password": "password",
    "port": "22",
    
    "remote_path": "/path/to/sftp_pfoject/",
    "ignore_regexes": [
        "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
        "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/",
        "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
    ],
    //"file_permissions": "664",
    //"dir_permissions": "775",
    
    //"extra_list_connections": 0,

    "connect_timeout": 180,
    //"keepalive": 120,
    //"ftp_passive_mode": true,
    //"ftp_obey_passive_host": false,
    "ssh_key_file": "~/.ssh/id_rsa",
    //"sftp_flags": ["-F", "/path/to/ssh_config"],
    
    //"preserve_modification_times": false,
    //"remote_time_offset_in_hours": 0,
    //"remote_encoding": "utf-8",
    //"remote_locale": "C",
    //"allow_config_upload": false,

5 サーバーに接続

「SFTP/FTP > Sync Remote -> sync Remote -> local」

配列から重複した値を削除するarray_unique()関数

array_unique()関数(配列から重複した値を削除する)

<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

?>