循环事件,从特定键抓取数据,添加到新数组-PHP
我试图循环遍历这些数组项,并从循环事件,从特定键抓取数据,添加到新数组-PHP,php,Php,我试图循环遍历这些数组项,并从url项中获取数据,将所有收集的数据添加到一个新数组中 我试图实现的步骤: 1.循环浏览$event['lineups'](4项)。 2.循环浏览事件中的数据(每个项目6个) 3.从每个位置抓取以下内容: facebook\u page\u url,instagram\u page\u url,官方网站\u url array (size=4) 0 => array (size=6) 'id' => string '220073
url
项中获取数据,将所有收集的数据添加到一个新数组中
我试图实现的步骤:1.循环浏览
$event['lineups']
(4项)。2.循环浏览事件中的数据(每个项目6个)
3.从每个位置抓取以下内容:
facebook\u page\u url
,instagram\u page\u url
,官方网站\u url
array (size=4)
0 =>
array (size=6)
'id' => string '22007301-f49f-442d-b93f-4c7ce5cbc8de' (length=36)
'name' => string 'MC Bassman' (length=10)
'facebook_page_url' => string 'https://www.facebook.com/bassmansdc/' (length=36)
'instagram_page_url' => string 'https://www.instagram.com/mcbassman_sdc/' (length=40)
'official_website_url' => string '' (length=0)
'position' => int 1
1 =>
array (size=6)
'id' => string 'f4c41b6f-33a1-4da0-b7fa-ffdfbd84724d' (length=36)
'name' => string 'Indika' (length=6)
'facebook_page_url' => string 'https://www.facebook.com/INDIKAMCR/' (length=35)
'instagram_page_url' => string 'https://www.instagram.com/indikamcr/' (length=36)
'official_website_url' => null
'position' => int 2
我的尝试和代码:
$default_keys = [
'facebook_page_url',
'instagram_page_url',
'official_website_url',
];
$performer_urls = [];
foreach( $event['lineups'] as $lineups ) {
foreach( $lineups as $lineup ) {
// Example: $contact_details['address_line_1']
if ( isset( $lineup[ $key ] ) && ! empty( $lineup[ $key ] ) ) {
// Update array (example): $address['address_line_1'] = $contact_details['address_line_1']
$performer_urls[$key] = $event['lineups'][ $key ];
}
}
}
var_dump($performer_urls);
设置需要从哪些键获取数据:
$default_keys = [
'facebook_page_url',
'instagram_page_url',
'official_website_url',
];
创建要向其中添加数据的新阵列:
$performer_urls = [];
循环遍历数组中的每个$event['lineups']
项:数组(大小=4)
循环遍历数组中的每个值:array(size=6)
检查数据是否存在,如果存在,请使用键和数据更新$performer\u url
数组
if ( isset( $lineup[ $key ] ) && ! empty( $lineup[ $key ] ) ) {
$performer_urls[$key] = $event['lineups'][ $key ];
}
到目前为止的完整代码:
$default_keys = [
'facebook_page_url',
'instagram_page_url',
'official_website_url',
];
$performer_urls = [];
foreach( $event['lineups'] as $lineups ) {
foreach( $lineups as $lineup ) {
// Example: $contact_details['address_line_1']
if ( isset( $lineup[ $key ] ) && ! empty( $lineup[ $key ] ) ) {
// Update array (example): $address['address_line_1'] = $contact_details['address_line_1']
$performer_urls[$key] = $event['lineups'][ $key ];
}
}
}
var_dump($performer_urls);
注意:未定义变量:输入
我现在遇到的错误是指正在使用的未定义的
$key
变量,但希望您能看到我在这里和几乎在那里试图实现什么?我相信我找到了一个解决方案,我知道您的想法,但恐怕您的代码中存在一些问题
我刚刚对它们进行了重构,最重要的是,我不知道如何在不覆盖键的情况下填充新的$performer\u URL
数组,这就是为什么我选择使用[]
语法来增加键
首先,PHP对您的$key
未定义变量的抱怨是正确的:-)示例:
然后我重构了错误的部分(正如我得到的),下面是完整的代码:
<?php
$event['lineups'] = [
[
'id' => '22007301-f49f-442d-b93f-4c7ce5cbc8de',
'name' => 'MC Bassman',
'facebook_page_url' => 'https://www.facebook.com/bassmansdc/',
'instagram_page_url' => 'https://www.instagram.com/mcbassman_sdc/',
'official_website_url' => '',
'position' => 1,
],
[
'id' => 'f4c41b6f-33a1-4da0-b7fa-ffdfbd84724d',
'name' => 'Indika',
'facebook_page_url' => 'https://www.facebook.com/INDIKAMCR/',
'instagram_page_url' => 'https://www.instagram.com/indikamcr/',
'official_website_url' => null,
'position' => 2,
],
];
$default_keys = [
'facebook_page_url',
'instagram_page_url',
'official_website_url',
];
$performer_urls = [];
foreach ($event['lineups'] as $lineups) {
foreach ($lineups as $key => $value) {
if (in_array($key, $default_keys) && !empty($value)) {
$performer_urls[] = $value;
}
}
}
var_dump($performer_urls);
我相信我想出了一个解决方案,我知道你的想法,但我担心你的代码中有一些问题 我刚刚对它们进行了重构,最重要的是,我不知道如何在不覆盖键的情况下填充新的
$performer\u URL
数组,这就是为什么我选择使用[]
语法来增加键
首先,PHP对您的$key
未定义变量的抱怨是正确的:-)示例:
然后我重构了错误的部分(正如我得到的),下面是完整的代码:
<?php
$event['lineups'] = [
[
'id' => '22007301-f49f-442d-b93f-4c7ce5cbc8de',
'name' => 'MC Bassman',
'facebook_page_url' => 'https://www.facebook.com/bassmansdc/',
'instagram_page_url' => 'https://www.instagram.com/mcbassman_sdc/',
'official_website_url' => '',
'position' => 1,
],
[
'id' => 'f4c41b6f-33a1-4da0-b7fa-ffdfbd84724d',
'name' => 'Indika',
'facebook_page_url' => 'https://www.facebook.com/INDIKAMCR/',
'instagram_page_url' => 'https://www.instagram.com/indikamcr/',
'official_website_url' => null,
'position' => 2,
],
];
$default_keys = [
'facebook_page_url',
'instagram_page_url',
'official_website_url',
];
$performer_urls = [];
foreach ($event['lineups'] as $lineups) {
foreach ($lineups as $key => $value) {
if (in_array($key, $default_keys) && !empty($value)) {
$performer_urls[] = $value;
}
}
}
var_dump($performer_urls);
你从哪里得到
$key
?我现在没有,但我知道我可能也需要做类似于foreach($key为默认值)
的事情,还不确定是否正确。在一个实例中使用3个foreach循环似乎也是错误的。刚刚更新了代码,意识到我在“检查数据是否存在,如果存在…”之后没有粘贴到代码中“我现在遇到的错误是指正在使用的未定义的$key变量”因此…不要使用它,也不要定义它。您从哪里获得$key
?我目前没有,但我知道我可能需要执行类似于foreach($default\u keys as$key)的操作
也是,还不确定是否正确。在一个实例中使用3个foreach循环似乎也是错误的。刚刚更新的代码,意识到我在“检查数据是否存在,如果存在…”之后没有粘贴到代码中。我现在遇到的错误是指正在使用的未定义的$key变量“那么。。。不要使用它,也不要定义它。我的代码在另一个foreach循环中,该循环遍历每个事件。Foreach事件,输出结构化数据。这可能会澄清这样一个观点,即事情似乎会变得过于复杂。我不能只有一个包含所有URL的数组。array(2)
-bassmansdc,mcbassman\u sdc<代码>数组(2)-INDIKAMCR,indikamcrMy代码位于另一个foreach循环中,该循环遍历每个事件。Foreach事件,输出结构化数据。这可能会澄清这样一个观点,即事情似乎会变得过于复杂。我不能只有一个包含所有URL的数组。array(2)
-bassmansdc,mcbassman\u sdc<代码>数组(2)-INDIKAMCR,INDIKAMCR
array(4) {
[0] =>
string(36) "https://www.facebook.com/bassmansdc/"
[1] =>
string(40) "https://www.instagram.com/mcbassman_sdc/"
[2] =>
string(35) "https://www.facebook.com/INDIKAMCR/"
[3] =>
string(36) "https://www.instagram.com/indikamcr/"
}