我有两个数组,$FULL_LIST和$ONLY_TITLES根据第一个键匹配值。
$FULL_LIST:
Array
(
[0] => Array
(
[0] => samsung-a40
[1] => Samsung A40 Phone
[2] =>
[3] => 21
[4] => 334234
[5] => 0
)
[1] => Array
(
[0] => samsung-a72
[1] => Galaxy A72 Phone
[2] =>
[3] => 230
[4] => 239049
[5] => 0
)
[2] => Array
(
[0] => lg-k61
[1] => LG K61 Phone
[2] =>
[3] => 22
[4] => 249582
[5] => 0
)
etc...
$only_titles
:
Array
(
[0] => Array
(
[0] => samsung-a40
[1] => Black Phone Case For Samsung A40
)
[1] => Array
(
[0] => lg-k61
[1] => Red Case LG K61 Phone
)
[2] => Array
(
[0] => samsung-a72
[1] => Folding Phone Case for Galaxy A72 Phone
)
etc...
我想从$only_title数组(其基本的长乘积标题)的第二个键中取值,并将其替换到$full_list
数组中:
$final_result
:
Array
(
[0] => Array
(
[0] => samsung-a40
[1] => Black Phone Case For Samsung A40 // title from $only_titles
[2] =>
[3] => 21
[4] => 334234
[5] => 0
)
[1] => Array
(
[0] => samsung-a72
[1] => Folding Phone Case for Galaxy A72 Phone // title from $only_titles
[2] =>
[3] => 230
[4] => 239049
[5] => 0
)
[2] => Array
(
[0] => lg-k61
[1] => Red Case LG K61 Phone // title from $only_titles
[2] =>
[3] => 22
[4] => 249582
[5] => 0
)
etc...
我尝试过array_replace_recursive()
,但问题是它期望子数组的顺序是相同的。但是,正如您在两个数组中所看到的,第二个子数组并不匹配。在array_replace_recursive()
中,第二个子数组错误:
[1] => Array
(
[0] => samsung-a72
[1] => Red Case LG K61 Phone // this is wrong
[2] =>
[3] => 230
[4] => 239049
[5] => 0
)
如何检查来自第一个键的值是否匹配?
这个脚本将帮助您解决问题
<?php
$full_array = [
[
'samsung-a40',
'Samsung A40 Phone',
null,
21,
334234,
0,
],
[
'samsung-a72',
'Galaxy A72 Phone',
null,
230,
239049,
0,
],
];
$only_titles = [
[
'samsung-a40',
'Black Phone Case For Samsung A40',
],
[
'samsung-a72',
'Red Case LG K61 Phone ',
],
];
$formattedOnlyTitles = [];
foreach ($only_titles as $value) {
$formattedOnlyTitles[$value[0]] = $value[1];
}
$fullArrayWithNewTitle = [];
foreach ($full_array as $value) {
if (isset($formattedOnlyTitles[$value[0]])) {
$value[1] = $formattedOnlyTitles[$value[0]];
}
$fullArrayWithNewTitle[] = $value;
}
print_r($fullArrayWithNewTitle);
输出
Array
(
[0] => Array
(
[0] => samsung-a40
[1] => Samsung A40 Phone
[2] =>
[3] => 21
[4] => 334234
[5] => 0
)
[1] => Array
(
[0] => samsung-a72
[1] => Galaxy A72 Phone
[2] =>
[3] => 230
[4] => 239049
[5] => 0
)
)
首先,我更改title_only
var的格式,以便在下一个foreach中使用它
$formattedOnlyTitles = [];
foreach ($only_titles as $value) {
$formattedOnlyTitles[$value[0]] = $value[1];
}
在下一个foreach中,我只使用新格式化的title_only数组检查标题
if (isset($formattedOnlyTitles[$value[0]])) {
$value[1] = $formattedOnlyTitles[$value[0]];
}
如果需要的话,可以更改标题
我有两个多维数组,我想通过使用其中一个数组的值和另一个数组的键来组合它们。数组如下: 阵列1: 阵列 2: 我想生成的结果数组如下: 有没有一个PHP函数可以用来完成这个任务?
问题内容: 我有一个像这样的数组: 如何删除重复的值,以便得到此信息: 我尝试使用array_unique,但是我认为由于该数组是多维的,因此无法正常工作。 编辑:我还需要此数组是多维的,并且以这种格式,我不能展平它。 问题答案: 在比较值以查找唯一值之前正在使用字符串转换: 注意 :当且仅当时,两个元素才被视为相等。换句话说:当字符串表示相同时。将使用第一个元素。 但是数组将始终转换为: 您可以
基本上我有一个数组如下所示: 用什么方法来计算重复次数最多的动作以及它重复了多少次?关键字“when”无关紧要。
问题内容: 例 问题,如何获得单一值,例如: 问题答案: 查看您的中的键和缩进: …等等
我有一个数组,看起来像:。而将始终保持常数。我希望x每迭代增加100。 我就是这么做的: null null 正如您所看到的,它不是在增加值。它总是只是插入。在第一个名为pies的对象中,我希望和下一个名为cakes的对象为。 我该怎么做?
问题内容: 例如: 一个) 与 b) 最初以为我会为了简化而选择a)。 我知道Java不会像C那样在内存中线性存储数组,但是这对我的程序有什么影响? 问题答案: 通常,在搜索答案时,最好的办法是查看如何将选择编译到JVM字节码中: 这被翻译成: 因此,如您所见,JVM已经知道我们在谈论多维数组。 进一步说明: 这被转换为(跳过循环): 因此,如您所见,多维数组在VM内部进行处理,无用指令不会产生开