2017年2月14日火曜日

配列内の値重複チェック

配列内の値の重複チェックを行うには、関数array_count_valuesが使えます。

[使用例]
$array = array (1, "Tokyo", 1, "Osaka", "Tokyo");

print_r(array_count_values ($array));

[結果]
Array(
  [1] => 2
  [Tokyo] => 2
  [Osaka] => 1
    )

[使用例2]
実際には以下のような形で使うことになるかと思います。

$array = array(11, 12, 13, 11, 15);

// 各値の出現回数をここで抽出
$array_value = array_count_values($array);    

$num = count($array);

for($i=0; $i < $num; $i++){

    $key = $array[$i];
    
    // 出現回数を格納
    $count = $array_value[$key];

    if($count > 1){
        print("値が重複しています。");
    }
}

二つの配列から、連想配列をつくる

<?php
$a = array( 30, "PHP", 87, 33, "入門" );
$b = array( "WEB", 1, "プログラミング", 2, 3 );
 
print_r( array_combine($a, $b) );
?>

2017年2月5日日曜日

PHP 入れ子になった配列並びえ

//order_numで並び替えたいとき。
$array = array(
    array(
        'id'        => 0,
        'order_num' => 'key100-01',
        'title'     => 'ベィスドロップ・フリークス',
        'artist'    => 'かめりあ feat. ななひら'
    ),
    array(
        'id'        => 1,
        'order_num' => 'key001-03',
        'title'     => 'CHRONO DIVER -NORNIR-',
        'artist'    =>  'L.E.D.'
    ),  
    array(
        'id'        => 2,
        'order_num' => 'key001-01',
        'title'     => 'illuminate',
        'artist'    => 'Sota Fujimori'
    ),  
    array(
        'id'        => 3,
        'order_num' => 'key001-04', 
        'title'     => 'YYYYY',
        'artist'    => 'XXXXXX'
    ),  

 
);

foreach ((array) $array as $key => $value) {
    $sort[$key] = $value['order_num'];//ソートしたいキー
}
var_dump($sort);

array_multisort($sort, SORT_ASC, $array);
var_dump($array);