php 배열관련 함수2


#두개 이상의 배열에서 키를 비교해서 서로 다른 키 값을 리턴한다.

<?php



//array_diff_key();
// 이 함수는 두개 이상의 배열에서 키를 비교해서 서로 다른 키 값을 리턴한다.

//array_diff() - value 값만 비교한다.

//array_diff_assoc() 키와 값을 둘다 비교한다.

//문법: array_diff_key(배열1,배열2);

$color = array("red","green","blue","black");
$color2 = array("red","green","blue");

$difference_array = array_diff_key($color,$color2);

echo '<pre>';
print_r($difference_array);
echo '</pre>';


echo '<hr>';


$color3 = array(
"a1" => "red",
"b2" => "green",
"c3" =>"blue",
"d4" => "black"
);


$color4 = array(
"d1" => "red",
"b2" => "blue",
"c3" =>"green"
);


$difference_array = array_diff_key($color3,$color4);

echo '<pre>';
print_r($difference_array);
echo '</pre>';


?>


#모든 키를 값과 교체를 한다.

<?php



//array_flip();

// 모든 키를 값과 교체를 한다.

//array_flip(array);

$fruits = array("oranges","apples","banana");
$flipped = array_flip($fruits);

echo '<pre>';
print_r($flipped);
echo '</pre>';

echo '<hr>';



$color = array(
"101" => "red",
"102" => "green",
"103" => "blue"

);

$flipped2 = array_flip($color);
echo '<pre>';
print_r($flipped2);
echo '</pre>';

?>

#배열의 값을 비교하여 같은 값만 리턴한다.


<?php



//array_intersect();
//배열의 값을 비교하여 같은 값만 리턴한다.


$color1 = array(
"a1" => "red",
"b2" => "green",
"c3" =>"blue",
"d4" => "black"
);


$color2 = array(
"d1" => "red",
"b2" => "blue",
"c3" =>"green"
);


$color3 = array(
"d1" => "yellow",
"b2" => "blue",
"c3" =>"silver"
);


$array_intersect = array_intersect($color1,$color2,$color3);

echo '<pre>';
print_r($array_intersect);
echo '</pre>';

?>


#배열의 키를 비교하여 같은 값만 리턴한다.




//array_intersect_key();
//배열의 키를 비교하여 같은 값만 리턴한다.


$color1 = array(
"a1" => "red",
"b2" => "green",
"c3" =>"blue",
"d4" => "black"
);


$color2 = array(
"d1" => "red",
"b2" => "blue",
"c3" =>"green"
);



$array_intersect_key = array_intersect_key($color1,$color2);

echo '<pre>';
print_r($array_intersect_key);
echo '</pre>';


echo '<hr>';


$countries = array(

'af' => 'africa',
'ko' => 'korea',
'us' => 'usa',
'ja' => 'japan',
);


$selection = array('af','ja');


$flipped = array_flip($selection);
$filtered = array_intersect_key($countries, $flipped);

echo '<pre>';
print_r($filtered);
echo '</pre>';


?>


'PHP 박살내기 > php 배열' 카테고리의 다른 글

php 배열관련 함수2  (0) 2017.09.26
php 배열관련 함수1  (0) 2017.09.22

php 배열관련 함수1


1.배열의 종류

<?php
//php 배열 종류는 3가지있다.


//1 indexed arrays
//array(value1, value2, value3,....);

$color = array("red","green","blue");

for($i = 0; $i< count($color);$i++){

echo $color[$i];
echo '<br>';
}

echo '<hr>';

foreach($color as $row){

echo $row;
echo '<br>';
}

echo '<hr>';

//2 associative array
// array(
// key1 => value1,
// key2=> value2
// )

$color2 = array(
'1' => "red",
'2' => "green",
'3' => "blue"
);

foreach($color2 as $keys => $values){
echo $keys . '=>' .$values . '</br>';
}


echo '<hr>';

//3 mulidimensional array

$color3 = array(

'red' => array("reditem1","reditem2","reditem3"),
'green' => array("greenitem1","greenitem2","greenitem3"),
'yellow' => array("yellowitem1","yellowitem2","yellowitem3")
);

//2중 포문으로 풀어 낸다
foreach($color3 as $keys => $values){
echo '색깔--' .$keys. '<br>';

foreach($values as $sub_row)
{
echo '색깔 아이템' . $sub_row. '<br>';
}
}


?>


2.key 값을 대문자 또는 소문자로 출력하기

array_change_key_case(array, case(option));

<?php
//배열의 key 값을 소문자 or 대문자로 바꾸는 함수
//array_change_key_case();

//array_change_key_case(array, case(option));

//배열 선언
$emp = array(

'jon' => 25,
'kim' => 26,
'song' => 27
);

//소문자
echo '<pre>';
print_r(array_change_key_case($emp));
echo '</pre>';

echo '<hr>';


//대문자
echo '<pre>';
print_r(array_change_key_case($emp,CASE_UPPER));
echo '</pre>';
?>


3.배열을 나누어서 두개의 배열로 만드는 함수

array_chunk(array,size,preserve_key)

<?php

// 배열을 나눠서 또다른 배열을 만드는 함수
//array_chunk();
//array_chunk(array,size,preserve_key)


$color = array("red","green","blue","yellow","gold","black");

$chunk_array = array_chunk($color,3);

echo '<pre>';
print_r($chunk_array);
echo '</pre>';


echo '<hr>';

//value값들 출력
foreach($chunk_array as $row)
{
foreach($row as $sub_row){
echo $sub_row.'<br>';
}
}


echo '<hr>';


//키값과 value 값 다 나오게하기

$emp = array(

'jon' => 25,
'kim' => 26,
'song' => 27,
'jin' => 28,
'nam' => 29
);

$chunk_array2 = array_chunk($emp,2,true);
echo '<pre>';
print_r($chunk_array2);
echo '</pre>';


foreach($chunk_array2 as $row){

foreach($row as $sub_key => $sub_rows){
echo $sub_key .'=>' . $sub_rows. '</br>';
}
}

?>


4.배열안의 value가 배열인 값들 중에서 해당 key 값의 value만 출력하는 함수

array_column(array,column_key,index_key);

<?php

//array_column()
//array_column(array,column_key,index_key);


$emp_data = array(

array(
'id' => 1001,
'name' => 'kim',
'gender' => 'male',
'city' => 'deagoo'
),

array(
'id' => 1002,
'name' => 'kang',
'gender' => 'male',
'city' => 'busan'
),


array(
'id' => 1003,
'name' => 'hong',
'gender' => 'male',
'city' => 'seoul'
),

array(
'id' => 1004,
'name' => 'jin',
'gender' => 'male',
'city' => 'deagoo'
)
);

//배열이 value인 값들 중에서 key 값이 name 사람들만 출력
$name = array_column($emp_data,"name");

echo '<pre>';
print_r($name);
echo '</pre>';


echo '<hr>';

//배열이 value인 값들 중에서 key 값이 name 사람들만 출력하는데 해당 id를 key 값으로 같이 출력하라
$name2 = array_column($emp_data,"name","id");

echo '<pre>';
print_r($name2);
echo '</pre>';



?>


5.두 배열을 하나로 합치기 , 첫 배열의 value 값은 합쳐진 후 key가 되고 뒤의 배열은 value 값이 된다.

array_combine(키, 값);

<?php

//array_combine()
// array_combine(키, 값);

$color = array("red","black","white");
$hash_code =array("#ff000","#99999","#adfda");

$array = array_combine($color,$hash_code);

echo '<pre>';
print_r($array);
echo '</pre>';




// 배열과 배열을 합치기

echo '<hr>';

$color2 = array(
'c1' => "red",
'c2' => "black",
'c3' => "white"
);


$hash_code2 = array(
'h1' => "aaaaaa",
'h2' => "bbbbbb",
'h3' => "cccccc"
);

$array2 = array_combine($color2,$hash_code2);
echo '<pre>';
print_r($array2);
echo '</pre>';


?>


6. value의 동일한 개수 구하기

array_count_values(array);

<?php



//array_count_values();
// array_count_values(array);

$color = array("red","red","red","green","green","green","green","green","yellow","gold");


$count_array = array_count_values($color);

echo '<pre>';
print_r($count_array);
echo '</pre>';
?>


7.두 배열을 비교해서 서로 다른 값이 있는 것을 배열에 넣어 리턴 하는 함수

array_diff(array1,array2);

<?php



//array_diff();
//array_diff();


$color = array("red","green","yellow","gold","hi","wow");

$color2 = array("red","green","yellow","gold");

$difference_array = array_diff($color,$color2);


echo '<pre>';
print_r($difference_array);
echo '</pre>';


echo '<hr>';



//이런 종류의 배열은 안됨 그래서

$color1 = array(

array('color' => "red"),
array('color' => "green"),
array('color' => "blue"),
array('color' => "yellow")

);

$color2 = array(

array('color' => "red"),
array('color' => "green"),
array('color' => "blue")

);

//빈배열만들고
$value1= array();
$value2= array();

//풀어주기
foreach($color1 as $row1)
{
$value1[] = $row1["color"];
}

foreach($color2 as $row2)
{
$value2[] = $row2["color"];
}

$difference_array = array_diff($value1,$value2);


echo '<pre>';
print_r($difference_array);
echo '</pre>';

?>


'PHP 박살내기 > php 배열' 카테고리의 다른 글

php 배열관련 함수2  (0) 2017.09.26
php 배열관련 함수1  (0) 2017.09.22

+ Recent posts

티스토리 툴바