Hướng dẫn php array merge if key exists - hợp nhất mảng php nếu khóa tồn tại

-1

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đã thử hợp nhất hai mảng nếu khóa không tồn tại trong mảng nhưng tôi không thể hoàn thành điều này. Làm thế nào tôi có thể làm được? Đây là những gì tôi đã thử:

  array (size=3)  // name of the array $exchange
  'purchase' => string '1' (length=1)
  'agriculture' => string '1' (length=1)

 array (size=6)  // name of the array $fixed
  'purchase' => string '0' (length=1)
  'ICT' => string '0' (length=1)
  'agriculture' => string '0' (length=1)
  'entertainment' => string '0' (length=1)
  'goods and service' => string '0' (length=1)
  'other' => string '0' (length=1)

   foreach($fixed as $keys=>$values){

    if(!in_array($values, $exchange, true)){

       array_push($exchange, $keys);
    }
   }

Tôi nhận được kết quả này:

 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)

Nhưng tôi muốn:

 array (size=7)
 'ICT' => string '1' (length=1)
 'purchase' => string '0' (length=8)
 'agriculture' => string '0' (length=11)
 'entertainment' => string '0' (length=13)
 'goods and service' => string '0' (length=17)
 'other' => string '0' (length=5)

Hướng dẫn php array merge if key exists - hợp nhất mảng php nếu khóa tồn tại

Shwet

1.7871 Huy hiệu vàng23 Huy hiệu bạc34 Huy hiệu đồng1 gold badge23 silver badges34 bronze badges

hỏi ngày 19 tháng 1 năm 2015 lúc 10:33Jan 19, 2015 at 10:33

Hướng dẫn php array merge if key exists - hợp nhất mảng php nếu khóa tồn tại

Homnath Bagalehomnath BagaleHomnath Bagale

4541 Huy hiệu vàng6 Huy hiệu bạc31 Huy hiệu đồng1 gold badge6 silver badges31 bronze badges

1

Thử cái này:

foreach ($fixed as $keys => $values) {
    if (! array_key_exists($keys, $exchange)) {
        $exchange[$keys] = $values;
    }
}

Nó kiểm tra xem khóa $keys chưa tồn tại trong

 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
0 và thêm nó cùng với giá trị của nó (
 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
1).

Hoặc bạn có thể chỉ cần thay thế toàn bộ khối

 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
2 bằng:

$exchange = $exchange + $fixed;

Việc bổ sung

 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
3 thêm vào
 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
0 các khóa (và giá trị của chúng) có trong
 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
5 nhưng không có trong ____10. Mảng kết hợp sau đó được lưu trữ trong
 array (size=7)
 'ICT' => string '1' (length=1)
 0 => string 'purchase' (length=8)
 1 => string 'ICT' (length=3)
 2 => string 'agriculture' (length=11)
 3 => string 'entertainment' (length=13)
 4 => string 'goods and service' (length=17)
 5 => string 'other' (length=5)
0.

Đọc cũng câu trả lời này. Nó giải thích nơi mã của bạn sai.

Đã trả lời ngày 19 tháng 1 năm 2015 lúc 10:44Jan 19, 2015 at 10:44

Hướng dẫn php array merge if key exists - hợp nhất mảng php nếu khóa tồn tại

Có một vài vấn đề với điều này:

  1.  array (size=7)
     'ICT' => string '1' (length=1)
     0 => string 'purchase' (length=8)
     1 => string 'ICT' (length=3)
     2 => string 'agriculture' (length=11)
     3 => string 'entertainment' (length=13)
     4 => string 'goods and service' (length=17)
     5 => string 'other' (length=5)
    
    8 sẽ tìm kiếm các giá trị của mảng đã cho, không phải các khóa, vì vậy trong trường hợp này, bạn chỉ cần kiểm tra xem giá trị "0" có tồn tại trong mảng
     array (size=7)
     'ICT' => string '1' (length=1)
     0 => string 'purchase' (length=8)
     1 => string 'ICT' (length=3)
     2 => string 'agriculture' (length=11)
     3 => string 'entertainment' (length=13)
     4 => string 'goods and service' (length=17)
     5 => string 'other' (length=5)
    
    9 không. Tôi giả sử thay vào đó bạn muốn kiểm tra xem khóa đã tồn tại.
  2.  array (size=7)
     'ICT' => string '1' (length=1)
     'purchase' => string '0' (length=8)
     'agriculture' => string '0' (length=11)
     'entertainment' => string '0' (length=13)
     'goods and service' => string '0' (length=17)
     'other' => string '0' (length=5)
    
    0 đẩy một giá trị mới vào khóa có sẵn tiếp theo.

Những gì bạn cần là kiểm tra xem một khóa có tồn tại không và nếu không, hãy thêm nó với giá trị hiện có. Thay vào đó hãy thử điều này:

for($fixed as $key=>$value)
{
    if(!isset($exchange[$key])) // Check if the key exists
    {
        $exchange[$key] = $value; // Add the new key -> value pair.
    }
}

Đã trả lời ngày 19 tháng 1 năm 2015 lúc 10:39Jan 19, 2015 at 10:39

slugonamissionslugonamissionslugonamission

9.4971 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng1 gold badge31 silver badges40 bronze badges

1

Bạn có thể làm điều đó theo nhiều cách tùy thuộc vào kết quả bạn mong muốn:

foreach($fixed as $key=>$values){
    if(!isset($exchange[$key])){
        $exchange[$key]=values;
    }
}

hoặc

$exchange += $fixed;

hoặc

$exchange = array_merge($fixed,$exchange);

Đã trả lời ngày 19 tháng 1 năm 2015 lúc 10:40Jan 19, 2015 at 10:40

Hướng dẫn php array merge if key exists - hợp nhất mảng php nếu khóa tồn tại

SerpesserpesSerpes

6724 Huy hiệu bạc14 Huy hiệu Đồng4 silver badges14 bronze badges

2

Làm thế nào tôi có thể hợp nhất hai mảng trong PHP mà không sao chép?

Làm thế nào tôi có thể hợp nhất hai mảng trong PHP mà không sao chép? Bạn có thể sử dụng hàm php mảng_unique () và hàm php array_merge () với nhau để hợp nhất hai mảng thành một mảng mà không có giá trị trùng lặp trong PHP.use the PHP array_unique() function and PHP array_merge() function together to merge two arrays into one array without duplicate values in PHP.

Làm cách nào để kết nối hai mảng trong PHP?

Array_merge () là một hàm tích hợp trong PHP và được sử dụng để hợp nhất hai hoặc nhiều mảng thành một mảng. Hàm này được sử dụng để hợp nhất các phần tử hoặc giá trị của hai hoặc nhiều mảng với nhau thành một mảng duy nhất.array_merge() is a builtin function in PHP and is used to merge two or more arrays into a single array. This function is used to merge the elements or values of two or more arrays together into a single array.

Làm thế nào để bạn hợp nhất chỉ số đầu tiên của một mảng với chỉ mục đầu tiên của mảng thứ hai?

Để kết hợp hai mảng bằng các chỉ số, chúng ta phải lặp qua chúng và hợp nhất khi chúng ta đi.Sao cho chỉ số đầu tiên của mảng thứ nhất và thứ hai cùng nhau tạo thành chỉ số đầu tiên của mảng kết quả.loop through them and merge as we go. Such that the first index of the first and second array together form the first index of the resultant array.

Phương pháp tốt nhất để hợp nhất hai đối tượng PHP là gì?

Cách tiếp cận 1: Chuyển đổi đối tượng thành mảng dữ liệu và hợp nhất chúng bằng hàm mảng_merge () và chuyển đổi mảng hợp nhất này trở lại thành đối tượng của lớp stdclass.Lưu ý: Trong khi hợp nhất các đối tượng bằng Array_merge (), các phần tử của mảng trong argun1 được ghi đè bởi các phần tử của mảng trong argun2.Convert object into data array and merge them using array_merge() function and convert this merged array back into object of class stdClass. Note: While merging the objects using array_merge(), elements of array in argument1 are overwritten by elements of array in argument2.