php - 获取数组php相同值的索引
问题描述
我有一个像这样的关联数组[这个数组是两个不同数组的组合]:
我结合数组和通过array_combine()
函数
$products = array_combine($one_array_key,$second_array_values);
$products = array(
"arn1" =>"A",
"arn2" =>"A",
"arn3" =>"A",
"arn4" =>"B",
"arn5" =>"B",
"arn6" =>"B"
);
A
所以正如你所看到的,数组和有两个不同的值B
。
我想要两个数组由它的键组成。
或者换句话说:比较关联数组的值和匹配值的键将被提取到另一个数组。
所以我的预期是:
$A = array("arn1","arn2","arn3");
$B = array("arn4","arn5","arn6");
我的代码:
$products = array_combine($one_array_key,$second_array_values);
$products_distinct_values = array_count_values($product);
$products_distinct_values_keys = array_keys($products_distinct_values);
foreach ($products as $key => $value)
{
// what should I need write there, to get the x numbers of array(s), containing *key* of the same *value of array*
}
解决方案
我绝对不会在专业项目中使用这种“可变变量”技术,但它确实满足您的要求。我会敦促你找出你的 XY 问题中的愚蠢之处。
实际上,下面的代码片段将同步迭代两个相关的输入数组并创建可变名称的结果数组以将值推送到其中。
代码:(演示)
$one_array_key = ['A', 'A', 'A', 'B', 'B', 'B'];
$second_array_values = ['arn1', 'arn2', 'arn3', 'arn4', 'arn5', 'arn6'];
foreach ($one_array_key as $index => $value) {
$$value[] = $second_array_values[$index];
}
var_export($A);
echo "\n---\n";
var_export($B);
输出:
array (
0 => 'arn1',
1 => 'arn2',
2 => 'arn3',
)
---
array (
0 => 'arn4',
1 => 'arn5',
2 => 'arn6',
)
拥有一个包含键和相关子数组的静态命名变量更有意义。这样,您可以根据需要调用array_keys()
结果,以找出在原始输入中找到了哪些组。
代码:(演示)
$result = [];
foreach ($one_array_key as $index => $value) {
$result[$value][] = $second_array_values[$index];
}
var_export($result);
输出:
array (
'A' =>
array (
0 => 'arn1',
1 => 'arn2',
2 => 'arn3',
),
'B' =>
array (
0 => 'arn4',
1 => 'arn5',
2 => 'arn6',
),
)
推荐阅读
- php - 将数组与公共键组合以进行 MYSQL 更新
- hash - 区块链散列中如何计算印章号?
- google-oauth - 登录服务器端应用程序并弃用
- php - Magento 2.2.2 错误:配置文件已更改。运行 app:config:import 或 setup:upgrade 命令同步配置
- laravel - 我的 Laravel 容器中的路由没有更新
- android - 构建一个 android 客户端应用程序以与支持 HTTP2 的流服务交互
- c - 无法将较小的数组复制到 C 中较大的预填充数组中
- robocopy - Robocopy - 错误 124 (0x0000007C) 创建目标目录
- python - 如何在我的 pygame 程序中实现此功能?
- javascript - 如何在有限宽度容器内和边栏旁边制作全页/窗口宽度图像?