Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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 - Fatal编程技术网

循环事件,从特定键抓取数据,添加到新数组-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/"
}