Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组键复制到另一个现有数组键中_Php_Arrays - Fatal编程技术网

Php 将数组键复制到另一个现有数组键中

Php 将数组键复制到另一个现有数组键中,php,arrays,Php,Arrays,我有两个数组,一个带键,另一个带数字键,我如何复制它们的键,以精确的顺序替换数字键 带数字键的数组 Array ( [0] => ABCDEFG [1] => This is my description [2] => 12.00 [3] => 30.00 [4] => My supplier [5] => My brand [6] => Shoes [7] => ) 阵列2 A

我有两个数组,一个带键,另一个带数字键,我如何复制它们的键,以精确的顺序替换数字键

带数字键的数组

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

)
阵列2

Array
(
    [productcode] => Product Code
    [productitemdesc] => Description
    [retailsalesprice] => Selling Price
    [currentcost] => Unit Cost
    [supplier] => Supplier
    [productbrand] => Brand
    [productcategory] => Category
    [productgroup] => Group
)
我想要这样的东西

Array
    (
        [productcode] => ABCDEFG
        [productitemdesc] => This is my description
        [retailsalesprice] => 12.00
        [currentcost] => 30.00
        [supplier] => My Supplier
        [productbrand] => My Brand
        [productcategory] => Shoes
        [productgroup] =>
    )
php是否有可用的现有函数?尝试了数组填充键,但似乎不是我想要的。

您可以使用该函数将第二个数组中的键(以下示例称为
$array\u keys
)与第一个数组中的值(称为
$array\u values
)组合在一起:

例如:

$combined = array_combine(array_keys($array_keys), $array_values);
print_r($combined);
这会像您描述的那样打印出数组。

您可以使用该函数将第二个数组中的键(以下示例称为
$array\u keys
)与第一个数组中的值(称为
$array\u values
)组合在一起:

例如:

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

这会像您描述的那样打印出数组。

array\u combine
方式更好,但您也可以使用此功能。这将允许您根据需要修改这些值

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);
}

array\u combine
方式更好,但您也可以使用此功能。这将允许您根据需要修改这些值

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);
}

其他答案肯定更有效,但如果您想学习如何手动循环数组,类似这样的方法应该可以工作:

<?php

// The original array
$arr1 = array(
    0 => '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);

其他答案肯定更有效,但如果您想学习如何手动循环数组,类似这样的方法应该可以:

<?php

// The original array
$arr1 = array(
    0 => '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);
我对它进行了测试并工作:

<?php
$a=array(
0 => "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);

我测试了它并工作:

<?php
$a=array(
0 => "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);

您可以使用array\u combine()

您可以使用array_combine()


否决票是怎么回事?Loll否决票是怎么回事?英雄联盟