Hướng dẫn php array copy values to keys - mảng php sao chép giá trị vào các khóa

Hãy cẩn thận, giải pháp được đề xuất với $a = array_combine($a, $a); sẽ không hoạt động cho các giá trị số.

Ví dụ, tôi muốn có bộ nhớ

Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)
0 để trở thành các khóa cũng như các giá trị tuy nhiên trạng thái thủ công PHP:

Nếu các mảng đầu vào có cùng một khóa chuỗi, thì giá trị sau cho khóa đó sẽ ghi đè lên cái trước. Tuy nhiên, nếu các mảng chứa các khóa số, giá trị sau sẽ không ghi đè lên giá trị ban đầu, nhưng sẽ được thêm vào.

Vì vậy, tôi đã giải quyết nó như thế này:

foreach($array as $key => $val) {
    $new_array[$val]=$val;
}

0

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 có 2 mảng, một mảng có khóa, một mảng khác có khóa số, làm thế nào tôi có thể sao chép khóa chúng, thay thế các khóa số theo thứ tự chính xác?

Mảng có khóa số

Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)

Mảng 2

Array
(
    [productcode] => Product Code
    [productitemdesc] => Description
    [retailsalesprice] => Selling Price
    [currentcost] => Unit Cost
    [supplier] => Supplier
    [productbrand] => Brand
    [productcategory] => Category
    [productgroup] => Group
)

Tôi muốn một cái gì đó như thế này

Array
    (
        [productcode] => ABCDEFG
        [productitemdesc] => This is my description
        [retailsalesprice] => 12.00
        [currentcost] => 30.00
        [supplier] => My Supplier
        [productbrand] => My Brand
        [productcategory] => Shoes
        [productgroup] =>
    )

Có bất kỳ chức năng hiện có có sẵn cho PHP không? Đã thử Array_Fill_Keys nhưng dường như không phải là thứ tôi muốn.

Hỏi ngày 2 tháng 8 năm 2017 lúc 3:34Aug 2, 2017 at 3:34

1

Bạn có thể sử dụng hàm

Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)
1 để kết hợp các khóa từ mảng thứ hai (cho ví dụ sau được gọi là
Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)
2) với các giá trị từ mảng thứ nhất (được gọi là
Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)
3):

Example:

$combined = array_combine(array_keys($array_keys), $array_values);
print_r($combined);

Điều này in ra mảng chính xác như bạn đã mô tả.

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 3:43Aug 2, 2017 at 3:43

Hướng dẫn php array copy values to keys - mảng php sao chép giá trị vào các khóa

DandanDan

4.8602 Huy hiệu vàng12 Huy hiệu bạc28 Huy hiệu đồng2 gold badges12 silver badges28 bronze badges

Array
(
    [0] => ABCDEFG
    [1] => This is my description
    [2] => 12.00
    [3] => 30.00
    [4] => My supplier
    [5] => My brand
    [6] => Shoes
    [7] => 

)
4 Cách tốt hơn rất nhiều nhưng bạn cũng có thể sử dụng chức năng này. Điều này sẽ cho phép bạn sửa đổi các giá trị nếu bạn muốn.

function custom_combine($numeric_array, $keyed_array)
{   
    $temp = array();
    $i=0;
    foreach($keyed_array as $key=>$val)
    {
        if(isset($numeric_array[$i]))       
            $temp[$key] = $numeric_array[$i];
        else
            $temp[$key] ='';
        $i++;           
    }   
    return($temp);
}

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 3:47Aug 2, 2017 at 3:47

Hướng dẫn php array copy values to keys - mảng php sao chép giá trị vào các khóa

Amit Joshiamit JoshiAmit Joshi

1.3191 Huy hiệu vàng7 Huy hiệu bạc1 gold badge7 silver badges10 bronze badges

Các câu trả lời khác chắc chắn là hiệu quả hơn, nhưng trong trường hợp bạn muốn học cách lặp thủ công thông qua các mảng, một cái gì đó như thế này sẽ hoạt động:

 'ABCDEFG',
    1 => 'This is my description',
    2 => '12.00',
    3 => '30.00',
    4 => 'My supplier',
    5 => 'My brand',
    6 => 'Shoes',
    7 => '',
);

// The second array
$arr2 = array(
    'productcode' => 'Product Code',
    'productitemdesc' => 'Description',
    'retailsalesprice' => 'Selling Price',
    'currentcost' => 'Unit Cost',
    'supplier' => 'Supplier',
    'productbrand' => 'Brand',
    'productcategory' => 'Category',
    'productgroup' => 'Group',
);

// Pre-define the new array to avoid errors
$arr_new = array();

// Manually create a value to increment during our foreach loop
$increment = 0;

// Loop through each value in $arr2
foreach ($arr2 as $key2 => $value2) {
  // If the key is set in $arr1, assign the value from $arr1 and the key from $arr2
  // to the new array
  if (isset($arr1[$increment])) {
    $arr_new[$key2] = $arr1[$increment];
  }
  // Increment the value regardless of whether it was found in $arr1 or not
  $increment++;
}

// Remove this if you want... It just displays the values found in $arr_new
print_r($arr_new);

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 3:49Aug 2, 2017 at 3:49

Jerdiggityjerdiggityjerdiggity

3.6051 Huy hiệu vàng25 Huy hiệu bạc41 Huy hiệu đồng1 gold badge25 silver badges41 bronze badges

Tôi đã kiểm tra nó và làm việc:

 "ABCDEFG",
1 => "This is my description",
2 => "12.00",
3 => '30.00',
4 => 'My supplier',
5 => 'My brand',
6 => 'Shoes',
7 => '',

)
;
$b=array
(
'productcode' => 'Product Code',
'productitemdesc' => 'Description',
'retailsalesprice' => 'Selling Price',
'currentcost' => 'Unit Cost',
'supplier' => 'Supplier',
'productbrand' => 'Brand',
'productcategory' => 'Category',
'productgroup' => 'Group',
);
 $j=0;
 foreach ($b as $i => $value) {
    $b[$i]=$a[$j];
    $j++;
}
 var_dump($b);

?>

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 3:53Aug 2, 2017 at 3:53

Bạn có thể sử dụng Array_Combine ()

$array3=array_combine($array2,$array1);
   print_r($array3);

Đã trả lời ngày 2 tháng 8 năm 2017 lúc 4:04Aug 2, 2017 at 4:04

0

Array_Keys () được sử dụng để làm gì?

Array_Keys () là một hàm tích hợp trong PHP và được sử dụng để trả về tất cả các khóa và mảng hoặc tập hợp con của các khóa. Tham số: Hàm lấy ba tham số trong đó một tham số là bắt buộc và hai tham số khác là tùy chọn.to return either all the keys of and array or the subset of the keys. Parameters: The function takes three parameters out of which one is mandatory and other two are optional.

Việc sử dụng hàm mảng_flip () là gì?

PHP |Hàm Array_flip () Chức năng tích hợp của PHP này được sử dụng để trao đổi các phần tử trong một mảng, tức là, trao đổi tất cả các khóa với các giá trị liên quan của chúng trong một mảng và ngược lại.Chúng ta phải nhớ rằng các giá trị của mảng cần phải là các khóa hợp lệ, tức là chúng cần phải là số nguyên hoặc chuỗi.to exchange elements within an array, i.e., exchange all keys with their associated values in an array and vice-versa. We must remember that the values of the array need to be valid keys, i.e. they need to be either integer or string.

Có phải các phím thay đổi chức năng lật của một mảng thành?

Array_flip () Trả về một mảng theo thứ tự lật, tức là các khóa từ mảng trở thành giá trị và giá trị từ mảng trở thành khóa.Lưu ý rằng các giá trị của mảng cần phải là các khóa hợp lệ, tức là chúng cần phải là int hoặc chuỗi.keys from array become values and values from array become keys. Note that the values of array need to be valid keys, i.e. they need to be either int or string.

Mảng có phải là PHP chính không?

Hàm ARRAY_KEY_EXISTS () PHP ARRAYThe array_key_exists() function checks an array for a specified key, and returns true if the key exists and false if the key does not exist.