PHP lấy giá trị khóa cụ thể từ mảng đa chiều

Trong phần này, chúng ta sẽ tìm hiểu tìm kiếm mảng nhiều chiều bằng cách sử dụng giá trị. Chúng tôi sẽ sử dụng PHP để làm điều này. Nếu chúng ta chưa biết về mảng nhiều chiều trong PHP thì ví dụ này sẽ rất hữu ích cho chúng ta. Trong ví dụ dưới đây của chúng tôi, chúng tôi sẽ sử dụng giá trị để tìm kiếm khóa của một mảng nhiều chiều. Nếu chúng ta muốn lấy giá trị từ một mảng nhiều chiều, chúng ta có thể dễ dàng thực hiện việc này bằng cách tìm kiếm giá trị khóa trong mảng

Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng một mảng đơn giản để giải thích ví dụ này. Chúng ta sẽ sử dụng hai mảng có tên là $students và $studentsAddress. Trong mảng $students của chúng ta, chúng ta sẽ sử dụng vòng lặp foreach. Trong mảng $studentsAddress của chúng tôi, chúng tôi cũng muốn hiển thị địa chỉ. Nhưng chúng tôi gặp sự cố vì ví dụ của chúng tôi có khóa user_id chứa một số bản ghi và id mảng đầu tiên. Để giải quyết vấn đề này, chúng ta sẽ sử dụng array_column[] và hàm của array_column

Mã đơn giản để tìm kiếm giá trị trong mảng nhiều chiều được mô tả như sau

Ví dụ đầy đủ để tìm kiếm giá trị trong mảng nhiều chiều được mô tả như sau

Ví dụ

Bây giờ mã trên của chúng tôi đã sẵn sàng và chúng tôi có thể chạy nó. Khi chúng tôi chạy cái này, đầu ra sau sẽ được tạo

Most of the array_flatten functions don't allow preservation of keys. Mine allows preserve, don't preserve, and preserve only strings [default].

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}

// Tests

$array = Array[
  'A' => Array[
    1 => 'foo',
    2 => Array[
      'a' => 'bar'
    ]
  ],
  'B' => 'baz'
];

echo 'var_dump[$array];'."\n";
var_dump[$array];
echo 'var_dump[array_flatten[$array, 0]];'."\n";
var_dump[array_flatten[$array, 0]];
echo 'var_dump[array_flatten[$array, 1]];'."\n";
var_dump[array_flatten[$array, 1]];
echo 'var_dump[array_flatten[$array, 2]];'."\n";
var_dump[array_flatten[$array, 2]];
?>

Index_key is safely applicable only in cases when corresponding values of this index are unique through over the array. Otherwise only the latest element of the array with the same index_key value will be picked up.

$records = array[
    array[
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
        'company_id' => 1,
    ],
    array[
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
        'company_id' => 1,
    ],
    array[
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
        'company_id' => 1,
    ],
    array[
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
        'company_id' => 2,
    ]
];

$first_names = array_column[$records, 'first_name', 'company_id'];
print_r[$first_names];
?>

________số 8

Array
[
    [1] => Jane
    [2] => Peter
]
?>

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}
0

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}
1

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}
2

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}
3

// recursively reduces deep arrays to single-dimensional arrays
// $preserve_keys: [0=>never, 1=>strings, 2=>always]
function array_flatten[$array, $preserve_keys = 1, &$newArray = Array[]] {
  foreach [$array as $key => $child] {
    if [is_array[$child]] {
      $newArray =& array_flatten[$child, $preserve_keys, $newArray];
    } elseif [$preserve_keys + is_string[$key] > 1] {
      $newArray[$key] = $child;
    } else {
      $newArray[] = $child;
    }
  }
  return $newArray;
}
4

$records = array[
    array[
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
        'company_id' => 1,
    ],
    array[
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
        'company_id' => 1,
    ],
    array[
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
        'company_id' => 1,
    ],
    array[
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
        'company_id' => 2,
    ]
];
0

Làm cách nào để lấy giá trị khóa cụ thể từ mảng đa chiều trong PHP?

Tìm kiếm mảng nhiều chiều bằng cách sử dụng phương thức array_search[] . Array_search[] là một hàm sẵn có tìm kiếm một giá trị nhất định liên quan đến cột/khóa mảng đã cho.

Làm cách nào để lấy giá trị khóa cụ thể từ mảng trong PHP?

PHP. hàm Array_keys[] . Ghi chú. Nếu giá_trị_khóa_tìm_kiếm tùy chọn được chỉ định, thì chỉ các khóa cho giá trị đó được trả về. Mặt khác, tất cả các khóa từ mảng được trả về.

Làm cách nào để chỉ nhận các giá trị từ mảng đa chiều trong PHP?

Truy xuất giá trị. Chúng ta có thể lấy giá trị của mảng nhiều chiều bằng phương pháp sau. .
Sử dụng phím. Chúng ta có thể sử dụng khóa của mảng kết hợp để lấy trực tiếp giá trị dữ liệu. .
Sử dụng vòng lặp foreach. Chúng ta có thể sử dụng vòng lặp foreach để truy xuất giá trị của từng khóa được liên kết bên trong mảng kết hợp đa chiều

Làm thế nào chúng ta có thể truy cập giá trị trong mảng nhiều chiều?

Truy cập các phần tử mảng nhiều chiều. Có hai cách chủ yếu để truy cập các phần tử mảng đa chiều trong PHP. .
Có thể truy cập các phần tử bằng cách sử dụng các thứ nguyên như tên_mảng['thứ nguyên thứ nhất']['thứ nguyên thứ hai']
Các phần tử có thể được truy cập bằng cách sử dụng vòng lặp for
Các phần tử có thể được truy cập bằng cách sử dụng cho mỗi vòng lặp

Chủ Đề