본문 바로가기
PHP 박살내기/php 배열

php 배열관련 함수1

by 인생여희 2017. 9. 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

댓글