PHP.mk документација

array_merge_recursive

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.array-merge-recursive.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.array-merge-recursive.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
array_merge_recursive

Референца за `function.array-merge-recursive.php` со подобрена типографија и навигација.

function.array-merge-recursive.php

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_merge_recursiveСпој една или повеќе низи рекурзивно

= NULL

array_merge_recursive(array ...$arrays): array

array_merge_recursive() ги спојува елементите од една или повеќе низи заедно така што вредностите на едната се додаваат на крајот од претходната. Враќа резултантна низа.

Ако низите имаат исти клучни вредности, тогаш вредностите за тие клучеви се спојуваат заедно во низа, и ова се прави рекурзивно, така што ако една од вредностите е самата низа, функцијата ќе ја спои со соодветен запис во друга низа. Ако, пак, низите имаат ист нумерички клуч, подоцнежната вредност нема да ја презапише оригиналната вредност, туку ќе се додаде.

Параметри

arrays

Променлив список на низи за рекурзивно спојување.

Вратени вредности

Низа од вредности што произлегуваат од спојувањето на аргументите заедно. Ако се повика без аргументи, враќа празна низа. array.

Дневник на промени

Верзија = NULL
7.4.0 Поминувањето објект на параметарот array е застарено. Користете property_exists наместо тоа.

Примери

Пример #1 array_merge_recursive() example

<?php
$ar1
= array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Види Исто така

  • array_merge() - Спој една или повеќе низи
  • array_replace_recursive() - Ги заменува елементите од дадените низи во првата низа рекурзивно

Белешки од корисници 1 белешка

gabriel dot sobrinho at gmail dot com
пред 16 години
I refactored the Daniel's function and I got it:

<?php
/**
 * array_merge_recursive does indeed merge arrays, but it converts values with duplicate
 * keys to arrays rather than overwriting the value in the first array with the duplicate
 * value in the second array, as array_merge does. I.e., with array_merge_recursive,
 * this happens (documented behavior):
 *
 * array_merge_recursive(array('key' => 'org value'), array('key' => 'new value'));
 *     => array('key' => array('org value', 'new value'));
 *
 * array_merge_recursive_distinct does not change the datatypes of the values in the arrays.
 * Matching keys' values in the second array overwrite those in the first array, as is the
 * case with array_merge, i.e.:
 *
 * array_merge_recursive_distinct(array('key' => 'org value'), array('key' => 'new value'));
 *     => array('key' => array('new value'));
 *
 * Parameters are passed by reference, though only for performance reasons. They're not
 * altered by this function.
 *
 * @param array $array1
 * @param array $array2
 * @return array
 * @author Daniel <daniel (at) danielsmedegaardbuus (dot) dk>
 * @author Gabriel Sobrinho <gabriel (dot) sobrinho (at) gmail (dot) com>
 */
function array_merge_recursive_distinct ( array &$array1, array &$array2 )
{
  $merged = $array1;

  foreach ( $array2 as $key => &$value )
  {
    if ( is_array ( $value ) && isset ( $merged [$key] ) && is_array ( $merged [$key] ) )
    {
      $merged [$key] = array_merge_recursive_distinct ( $merged [$key], $value );
    }
    else
    {
      $merged [$key] = $value;
    }
  }

  return $merged;
}
?>

This fix the E_NOTICE when the the first array doesn't have the key and the second array have a value which is a array.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.