PHP 속성 과정: 배열 작업

오늘은 PHP의 배열 변환과 조작을 배웁니다.
이 PHP 속성 과정은 무료이며 dev.to에 발표될 것입니다.나는 이틀 간격으로 새로운 문장/게시물을 한 편씩 발표할 것이다.어떤 것도 놓치지 않기 위해 트위터에서 나를 지켜볼 수 있다.
우선, 이것은 웹 개발에서 매우 흔히 볼 수 있는 장면입니다. 이것은 우리가 왜 진열을 필요로 하는지 이해하는 데 도움을 줄 것입니다.
다음 예에서, 우리는 제품과 그 가격의 목록을 표시해야 한다.
$product1 = "iPad";
$product2 = "iPhone";
$product3 = "iWatch";

$price1 = 599;
$price2 = 899;
$price3 = 699;

echo $product1 . ' : ' . $price1 . '<br>';
echo $product2 . ' : ' . $price2 . '<br>';
echo $product3 . ' : ' . $price3 . '<br>';
이 코드가 가장 좋은 것이 아니라는 것을 상상할 수 있다.만약 우리가 100종, 심지어 10000종의 제품을 가지고 있다면 상상해 보세요.
앞의 예를 더욱 효과적으로 완성할 수 있는 방법이 있다...배열
PHP의 배열은 값 세트입니다.그룹의 값은 다른 종류가 될 수 있습니다.
배열을 정의하려면 대괄호[]를 사용합니다.
$products = [];
변수 $products는 하나의 그룹입니다
컨텐트를 포함하는 배열을 만들 수 있습니다.
$products = ['iPad', 'iPhone', 'iWatch'];
이 배열에는 아이패드, 아이폰, iWatch 세 개의 문자열이 포함되어 있다
각 배열 요소는 쉼표로 구분됩니다.
서로 다른 유형의 변수를 사용할 수 있는 그룹
$array = ['First entry', 100, true];
심지어 하나의 수조에 하나의 수조를 만들 수 있다
$array = ['First entry', 100, ['iPad', 'iPhone'], false];

프로젝트 액세스


echo $array[0];
// First entry
배열의 요소는 0부터 인덱스됩니다.따라서 첫 번째 항목은 위치 0에 있고 두 번째 항목은 위치 1에 있다.
$array = ['First entry', 100, ['iPad', 'iPhone'], false];
                 0         1           2            3
그룹의 그룹에 접근하려면 아래 문법을 사용하십시오
echo $array[2][1];
// iPhone
여기에는 요소 2, 즉 [아이패드], [아이폰]이 표시됩니다.
그러면 요소 1은 아이폰.
존재하지 않는 항목에 접근하려고 시도할 경우PHP가 null이라는 경고를 반환합니다.
$array = ['First entry', 100, true];

echo $array[3];
// null 
// Warning: Undefined array key 3

세다


그룹의 항목 수를 확인하려면count () 함수를 사용하십시오
$array = ['First entry', 100, true];

echo count($array);
// 3

배열 작업


그룹 끝에 요소 추가하기
$array[] = 'Last';

// ['First entry', 100, ['iPad', 'iPhone'], false, 'Last']
배열에서 요소 제거
unset($array[0]);

// [100, ['iPad', 'iPhone'], false, 'Last']
내폭 함수를 사용하여 그룹을 문자열로 변환하기
$array = ['One', 'Two', 'Three'];
echo implode(', ', $array);
// "One, Two, Three"
첫 번째 매개 변수는 구분자입니다.
explode 함수를 사용하여 문자열을 그룹으로 변환하기
$text = 'Mike, Shawn, John';
echo explode(',', $text); // ['Mike', 'Shawn', 'John'];
첫 번째 매개 변수는 구분자입니다.

그룹의 모든 요소를 옮겨다니기


foreach 함수는 그룹의 모든 요소에 대한 실행 코드입니다.
$names = ['Mike', 'Shawn', 'John'];

foreach($names as $name) { 
   echo 'Hello ' . $name;
}
첫 번째 파라미터는 탐색할 그룹의 이름이고, 두 번째 파라미터는 현재 요소에 대한 인용을 표시합니다.

연관 배열


지금까지 우리는 이미 수조의 작업 원리를 이해했다.그들은 0에서 시작하는 숫자 키를 가지고 있다.
사용자 정의 키를 사용하여 그룹을 만들 수 있습니다.이것이 PHP가 말하는 연관 배열입니다.
$person = ['age' => 45, 'genre' => 'men'];
이곳의 나이와 성별이 관건이다.45와 남성은 이 키와 관련된 값이다.
일부 프로그래밍 언어는 이런 유형의 그룹을 사전이라고 부른다.
연관수 그룹은 매우 실용적이기 때문에 자주 사용하기 때문에 잘 이해해야 한다.그것들은 정보를 저장하기에 매우 적합하다.
$product = ['id' => 100, 'name' => 'iPad', 'price' => 699];
그룹 값에 대한 접근은 키를 통해 이루어집니다
echo "Product :" . $product['name'];
새 키를 지정하여 배열에 키/값을 추가할 수 있습니다.
$product['qty'] = 5;
키가 있는지 확인할 수 있습니다
$product = ['id' => 100, 'name' => 'iPad', 'price' => 699];

echo array_key_exists('id', $product);
// true

값과 키를 사용하여 연결된 그룹에서 순환하기


foreach($names as $key => $value) {
   echo $key . ' : ' . $value;
}

연결:두 배열 연결


$names1 = ['Mike', 'Paul', 'Tom'];
$names2 = ['John', 'Sam'];

$allNames = array_merge($names1, $names2);
// ['Mike', 'Paul', 'Tom', 'John', 'Sam'];
확장 연산자에 대한 직렬 연결(...)
$names1 = ['Mike', 'Paul', 'Tom'];
$names2 = ['John', 'Sam'];

$allNames = [...$names1, ...$names2];
// ['Mike', 'Paul', 'Tom', 'John', 'Sam'];
여기, 그룹 이름 (... $names) 앞에 있는 확장 연산자가 그룹을 해설합니다.

연관 배열의 배열


자주 사용하는 모델은 관련 그룹을 포함하는 그룹입니다.
$items = [
    ['id' => '100', 'name' => 'product 1'],
    ['id' => '200', 'name' => 'product 2'],
    ['id' => '300', 'name' => 'product 3'],
    ['id' => '400', 'name' => 'product 4'],
];
이런 표는 데이터를 표시하기에 매우 적합하다.
각 항목을 반복하여 표시할 수 있습니다.
foreach($items as $item) {
    echo $item['name'] . <br>;
}
"as"문장은 그룹 항목에 대한 인용을 만듭니다.

검색 배열의 일부


검색할 수 있는 몇 가지 함수가 있습니다.
키 또는 값만 읽어들이기
$person = ['age' => 45, 'genre' => 'men'];

// Return an array with only keys
echo array_keys($person); // ['age', 'genre']

// Return an array with only values
echo array_values($person); // [45, 'men']
array filter() 함수를 사용하여 특정 조건에 맞는 항목 읽어들이기
$items = [
    ['id' => 100, 'name' => 'product 1'],
    ['id' => 200, 'name' => 'product 2'],
    ['id' => 300, 'name' => 'product 3'],
    ['id' => 400, 'name' => 'product 4'],
];

$filteredItem = array_filter($items, function ($product) {
    return $product['id'] > 200;
});

print_r($filteredItem);
// $items = [
//    ['id' => '300', 'name' => 'product 3'],
//    ['id' => '400', 'name' => 'product 4'],
// ];
array filter() 함수는 콜백 함수를 매개변수로 하는 함수입니다.수조의 모든 항목에 대해 표현식을 계산합니다.표현식이 true이면 현재 항목이 결과 배열에 포함됩니다.

배열에서 검색


$items = [
  ['id' => '100', 'name' => 'product 1'],
  ['id' => '200', 'name' => 'product 2'],
  ['id' => '300', 'name' => 'product 3'],
  ['id' => '400', 'name' => 'product 4'],
];

$found_key = array_search('product 3', array_column($items, 'name'));
// 2
array search() 함수를 사용하면 검색 기준에 따라 특정 키를 검색할 수 있습니다.이전 예에서 이름 열에서 제품 3 키를 찾았습니다.

array map() 함수를 사용하여 새 배열 생성하기


$items = [
    ['id' => 100, 'name' => 'product 1'],
    ['id' => 200, 'name' => 'product 2'],
    ['id' => 300, 'name' => 'product 3'],
    ['id' => 400, 'name' => 'product 4'],
];

$mapItems = array_map(function ($product) {
    return [
        'id' => $product['id'] * 2, 
        'name' => $product['name']
    ];
}, $items);

print_r($mapItems);
//[
    ['id' => 200, 'name' => 'product 1'],
    ['id' => 400, 'name' => 'product 2'],
    ['id' => 600, 'name' => 'product 3'],
    ['id' => 800, 'name' => 'product 4'],
];
함수의 역할은 모든 리셋 항목이 되돌아오는 내용을 포함하는 그룹을 되돌려주는 것입니다.
array map() 함수에는 콜백 함수와 배열이라는 두 가지 매개변수가 있어야 합니다.예를 들어 그룹 맵 (리셋 함수, 그룹)
array map() 함수는 각 배열 항목을 순환하면서 새 배열을 구성합니다.새 그룹의 모든 항목은 리셋 함수의 결과입니다.이전 예시에서, 모든 순환은 id가 *2이고 제품 이름인 항목을 되돌려줍니다.
원본 테이블을 수정하지 않고 새 테이블을 만듭니다.

array reduce() 함수


이 함수는 하나의 그룹을 가져와 하나의 값으로 축소합니다.Eg는 배열에 포함된 모든 숫자를 더한 결과를 반환합니다.
$numbers = [2, 4, 6, 100];

$sum = array_reduce($numbers, function ($num, $total) {
    return $total + $num;
}, 0);

print_r($sum);
// 112
array reduce () 함수에는 실제 항목에 대한 인용과 총 변수가 두 개 있습니다.매번 교체할 때마다 리셋 함수는 토탈 변수에서 결과를 되돌려줍니다.

결론


오늘은 여기까지, 나는 이틀 간격으로 새로운 문장을 발표할 것이다.어떤 것도 놓치지 않도록 트위터에서 지켜봐 주세요.

좋은 웹페이지 즐겨찾기