我有这样的数组.........
Array
(
[0] => Array
(
[0] => rose
[1] => monkey
[2] => donkey
)
[1] => Array
(
[0] => daisy
[1] => monkey
[2] => donkey
)
[2] => Array
(
[0] => orchid
[1] => monkey
[2] => donkey
)
)
Run Code Online (Sandbox Code Playgroud)
我想要这样.........
Array
(
[0] => rose
[1] => monkey
[2] => donkey
[3] => daisy
[4] => monkey
[5] => donkey
[6] => orchid
[7] => monkey
[8] => donkey
)
Run Code Online (Sandbox Code Playgroud)
....我使用了数组合并但它没有工作,因为我的数组生成动态,每次显示不同的数组.问题是我无法在array_merge()函数中动态传递数组.它只接受数组的手动条目而不接受任何其他变量.function只接受数组.
它像这样工作......
$total_data …Run Code Online (Sandbox Code Playgroud) 我希望这样做更好的方式,而无需硬编码整数$justPrices[$i]:
$pricesResult = array_merge($justPrices[0], $justPrices[1], $justPrices[2], $justPrices[3]);
Run Code Online (Sandbox Code Playgroud)
$justPrices是一个多维数组,每个数组中包含4个'带'的价格.$justPrices例如的数据:
Array ( [0] => Array ( [0] => 40.95 [1] => 39.95 [2] => 39.45 [3] => 38.95 ) [1] => Array ( [0] => 45.80 [1] => 41.80 [2] => 41.50 [3] => 41.40 ) [2] => Array ( [0] => 45.95 [1] => 42.95 [2] => 41.95 [3] => 41.45 ) [3] => Array ( [0] => 50.00 [1] => 50.00 [2] => 50.00 [3] …Run Code Online (Sandbox Code Playgroud) 我有一个双级数组.在第一级有大约10个索引.它们包含275个元素数组,每个数组都包含一个单词.
Array
(
[0] => Array
(
[0] => Suspendisse
[1] => Nam.
[2] => Amet
[3] => amet
[4] => urna
[5] => condimentum
[6] => Vestibulum
[7] => sem
[8] => at
[9] => Curabitur
[10] => lorem
.... to [275]
)
[1] => Array
(
... you get the idea
)
... 10 elements total
)
Run Code Online (Sandbox Code Playgroud)
现在,通过环境,比如占用空间的添加图像,我有时需要重新计算剩余的单词数量,并重新分配仍然保留的数组.
为此,我编写了下面的函数,使剩下的数组成为一个很长的单词数组,然后我可以将array_chunk调整到正确的比例.&$ array是对"mother array"的引用,$ memory是一个多余的单词数组,$ index是我们迭代for循环的地方,$ limit是第二级的"数组"长度,在这里案例275
function redistribute(&$array,$memory,$index,$limit)
{
$ret[] = $array[0];
// skip past the current processed items
for($c=1;$c<$index;$c++) …Run Code Online (Sandbox Code Playgroud) 我想要 Union 2 数组$A和$B示例:
$A = Array(
0=>array(
'lable' =>"label0",
'id_poste'=>1,
'id_part'=>11
),
1=>array(
'lable' =>"label1",
'id_poste'=>2,
'id_part'=>12
),
2=>array(
'lable' =>"label2",
'id_poste'=>3,
'id_part'=>13
),
3=>array(
'lable' =>"label3",
'id_poste'=>4,
'id_part'=>14
)
);
$B = Array(
0=>array(
'lable' =>"label0",
'id_poste'=>1,
'id_part'=>11
),
1=>array(
'lable' =>"label1_X",
'id_poste'=>2,
'id_part'=>12
),
2=>array(
'lable' =>"label2",
'id_poste'=>3,
'id_part'=>13
),
3=>array(
'lable' =>"label3_X",
'id_poste'=>4,
'id_part'=>14
)
);
Run Code Online (Sandbox Code Playgroud)
这两个数组之间的并集结果将是
/*
$result => Array(
0=>array(
'lable' =>"label0",
'id_poste'=>1,
'id_part'=>11
),
1=>array(
'lable' =>"label1",
'id_poste'=>2,
'id_part'=>12 …Run Code Online (Sandbox Code Playgroud) 我有两个要合并的numpy蒙版数组。我正在使用以下代码:
import numpy as np
a = np.zeros((10000, 10000), dtype=np.int16)
a[:5000, :5000] = 1
am = np.ma.masked_equal(a, 0)
b = np.zeros((10000, 10000), dtype=np.int16)
b[2500:7500, 2500:7500] = 2
bm = np.ma.masked_equal(b, 0)
arr = np.ma.array(np.dstack((am, bm)), mask=np.dstack((am.mask, bm.mask)))
arr = np.prod(arr, axis=2)
plt.imshow(arr)
Run Code Online (Sandbox Code Playgroud)
问题是np.prod()操作非常慢(在我的计算机中为4秒)。有没有一种更有效的方式来获取合并数组的替代方法?
我正在寻找 JQ 查询,它允许我合并 2 个数组变量(不是文件),并带我用第二个数组中的较新值覆盖第一个数组。例如:
#!/bin/bash -e
firstArrayVariable='
[
{
"Key": "A B",
"Value": "1 2"
},
{
"Key": "C D",
"Value": "3 4"
},
{
"Key": "E F",
"Value": "5 6"
},
{
"Key": "G H",
"Value": "9 10"
}
]
'
secondArrayVariable='
[
{
"Key": "A B",
"Value": "1 2"
},
{
"Key": "C D",
"Value": "3 4"
},
{
"Key": "G H",
"Value": "11 12"
},
{
"Key": "J K",
"Value": "15 16"
}
]
'
jq …Run Code Online (Sandbox Code Playgroud) 我最近经常看到以下内容,我想知道它的作用是什么?我似乎无法在PHP手册中找到它.
$arr1 = array('key' => 'value1');
$arr2 = array('key' => 'value2');
$arr1 += $arr2;
Run Code Online (Sandbox Code Playgroud)
它与array_merge类似吗?
我知道以下是什么,但我不明白它在使用数组时的作用:
$var1 = 1;
$var2 = 2;
$var1 += $var2;
echo $var1; // 3
Run Code Online (Sandbox Code Playgroud) 我正在追逐我的尾巴试图将两个不同查询的结果组合在一个模板中输出.
我正在尝试合并model_data和entry_data中的相应子数组以获取desired_result.然后,我将遍历desired_result并将值打印到模板中.
非常感谢任何帮助.
model_data
array(2) {
[0]=>
array(2) {
["entry_id"]=> string(3) "192"
["field_id_49"]=> string(10) "Model Name"
}
[1]=>
array(2) {
["entry_id"]=> string(3) "193"
["field_id_49"]=> string(5) "MN123"
}
}
Run Code Online (Sandbox Code Playgroud)
entry_data
array(2) {
[0]=>
array(2) {
["uri"]=> string(24) "/products/product-title/"
["title"]=> string(13) "Product Title"
}
[1]=>
array(2) {
["uri"]=> string(22) "/products/lorem-ipsum/"
["title"]=> string(11) "Lorem Ipsum"
}
}
Run Code Online (Sandbox Code Playgroud)
desired_result
array(2) {
[0]=>
array(4) {
["entry_id"]=> string(3) "192"
["field_id_49"]=> string(10) "Model Name"
["uri"]=> string(24) "/products/product-title/"
["title"]=> string(13) "Product Title"
}
[1]=>
array(4) {
["entry_id"]=> string(3) …Run Code Online (Sandbox Code Playgroud) 如果他们在他们的配置文件中有替代信息,我需要将一个新的替代信息数组合并到循环中.
这是我的循环:
foreach ($doctor->getVars() as $k => $v)
{
$data['doctor_'. $k] = $v;
}
foreach ($patient->get_data() as $k=>$v)
{
if (is_string($v) || is_numeric($v))
$data["patient_" . $k] = strtoupper($v);
}
Run Code Online (Sandbox Code Playgroud)
这是$ data var_dump:
Array
(
[employee] => person
[date] => 05/08/2013
[datetime] => 05/08/2013 9:41:15 AM
[department] => stuff
[employee_ext] => 7457
[employee_email] =>
[barcode] => *NZS01*
[doctor_df_code] => 09HQ
[doctor_npi] => 1111111111
[doctor_dea] => B4574
[doctor_upin] =>
[doctor_license] =>
[doctor_phone] => (111)111-1111
[doctor_fax] => (000)000-0000
[doctor_fname] => UNDEFINED
[doctor_lname] => …Run Code Online (Sandbox Code Playgroud) 周围有很多讨论'array_merge(...)' is used in a loop and is a resources greedy construction.
对于简单数组,有一个使用扩展运算符的简单解决方案。例如
$arraysToMerge = [ [1, 2], [2, 3], [5,8] ];
$arraysMerged = array_merge([], ...$arraysToMerge);
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是,在以下情况下我找不到避免这种情况的方法:
假设您有一个用户列表,并且每个用户都有多个社交媒体帐户。
您将如何创建一个包含所有用户的所有社交媒体帐户的数组?我发现的唯一解决方案是这样的:
$allSocialMediaAccounts= [];
foreach ($users as $user) {
$allSocialMediaAccounts= array_merge($accounts, $user['socialMediaAccounts']);
}
Run Code Online (Sandbox Code Playgroud)