首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于未定义索引,无法从数组1分配值到数组2

由于未定义索引,无法从数组1分配值到数组2
EN

Stack Overflow用户
提问于 2022-08-28 06:01:12
回答 2查看 75关注 0票数 1

$new_stock_array具有以下价值:

代码语言:javascript
复制
$new_stock_array = Array
(
    "VRX1600/380" => 0,
    "NEFOM" => 1,
    "PZ1000-840" => 4,
    "CU1000TNG" => 1,
    "SST-91" => 0,
    "BEER3" => 12,
    "L09125N" => 1,
    "B15GFA" => 0,
    "IBM20" => 8,
    "FGDG1500LS-3" => 0,
    "BD550S" => 2,
    "GNX1400TNG" => 1,
    "SH3000-800" => 6,
    "SLX3100TN" => 1,
    "FGOR1000LC" => 7,
    "ITR50" => 2,
    "SH2000-800" => 1,
    "FGOR1200LC" => 1,
    "TRAYS66LGLASS" => 1,
    "B215G" => 1,
    "SD520Q" => 7,
    "ST1200-NG" => 1,
    "BD650S" => 6,
    "GFC400-LPG" => 1,
    "CH300-LPG" => 1,
    "B318G" => 5,
    "CST400-LPG" => 1,
    "TC12" => 2,
    "STAND6LTRAYS" => 2,
    "SLX2100TN" => 0,
    "STGR300" => 4,
    "SH2000-700" => 5,
    "SLX4100TN" => 0,
    "BTS120L" => 16,
    "HX-1S" => 1,
    "PAX2100TNG" => 2,
    "BTS160L" => 19,
    "GNX1400TN" => 1,
    "VRX1200/380" => 2,
    "GFC400-NG" => 1,
    "GN400TNV" => 2,
    "CST400-NG" => 1,
    "AGGF-3-NG" => 14,
    "CGR400-NG" => 1,
    "GNX2100TNG" => 2,
    "GNX2100TN" => 2,
    "BC05" => 2,
    "ST1200-LPG" => 2,
    "GR300-LPG" => 2,
    "AGGF-3-LPG" => 0,
    "CGR400-LPG" => 2,
    "TRAYS6GLASS" => 3,
    "BEER3SS" => 3,
    "GNX650TN" => 3,
    "GNX4100TNG" => 3,
    "PAX3100TNG" => 2,
    "SH3000-700" => 3,
    "STAND6TRAYS" => 3,
    "TRAYS6LGLASS" => 3,
    "B1400TNV" => 2,
    "PZ2000-840" => 3,
    "4OVST-LPG" => 3,
    "AGGF-5-LPG" => 3,
    "ST600-NG" => 3,
    "CH600-NG" => 3,
    "WS540BTG" => 3,
    "BASE300" => 3,
    "SP18G" => 4,
    "CH900-NG" => 4,
    "WS1900BTG" => 4,
    "BASE1200" => 4,
    "BD700S" => 4,
    "GNX2100BT" => 5,
    "IBM30" => 5,
    "PZ3000-840" => 6,
    "CH600-LPG" => 6,
    "6OVST-LPG" => 5,
    "GNX3100TN" => 6,
    "GNX3100BT" => 6,
    "GNX3100TNG" => 5,
    "GNX4100TN" => 8,
    "DSA420TGO" => 9,
    "AGGF-4-LPG" => 7,
    "EASY50" => 9,
    "AGGF-4-NG" => 9
);

下面是$all_rows的一个极小的摘录:

代码语言:javascript
复制
$all_rows = array(
0 => Array
    (
        "web-scraper-order" => "web-scraper-order",
        "web-scraper-start-url" => "web-scraper-start-url",
        "top_category_links" => "top_category_links",
        "top_category_links-href" => "top_category_links-href",
        "product_links" => "product_links",
        "product_links-href" => "product_links-href",
        "title" => "title",
        "mpn" => "mpn",
        "rrp_price_inc" => "rrp_price_inc",
        "stock" => "stock",
        "desc" => "desc",
        "primary_img_large" => "primary_img_large",
        "breadcrumb_categories" => "breadcrumb_categories",
        "stock_commentary" => "stock_commentary",
        "next_page" => "next_page",
        "next_page-href" => "next_page-href",
        "rrp_price_ex" => "rrp_price_ex",
        "full_img" => "full_img",
        "grouped_src_3_loaded_only" => "grouped_src_3_loaded_only",
        "grouped_src_3_loaded_only-src" => "grouped_src_3_loaded_only-src",
        "ETA_label" => "ETA_label",
        "pagination_gallery" => "pagination_gallery",
        "div_href_img" => "div_href_img",
        "manual" => "manual",
        "collected_images" => "collected_images"
    ),

1 => Array
    (
        "web-scraper-order" => "1661506781-1480",
        "web-scraper-start-url" => "https://www.agequipment.com.au/",
        "top_category_links" => "",
        "top_category_links-href" => "https://www.agequipment.com.au/food-processing/",
        "product_links" => "12 Inch (300mm) Meat Slicer",
        "product_links-href" => "https://www.agequipment.com.au/12inch-300mm-meat-slicer/",
        "title" => "12 Inch (300mm) Meat Slicer",
        "mpn" => "VRX1600/380",
        "rrp_price_inc" => "999.00",
        "stock" => "PRE ORDER",
        "desc" => "",
        "primary_img_large" => "",
        "breadcrumb_categories" => "",
        "stock_commentary" => "Pre-Order now for next shipment 9/9/2022",
        "next_page" => "",
        "next_page-href" => "",
        "rrp_price_ex" => "$908.18",
        "full_img" => "https://www.agequipment.com.au/pub/media/catalog/product/cache/10fe8d9df2d769f1f80c003a45c2fe8b/1/0/10x.jpg",
        "grouped_src_3_loaded_only" => "",
        "grouped_src_3_loaded_only-src" => "",
        "ETA_label" => "ETA 9/9/2022",
        "pagination_gallery" => "",
        "div_href_img" => "",
        "manual" => "",
        "collected_images" => ""
    ),

2 => Array
    (
        "web-scraper-order" => "1661576256-1882",
        "web-scraper-start-url" => "https://www.agequipment.com.au/",
        "top_category_links" => "",
        "top_category_links-href" => "https://www.agequipment.com.au/gas/",
        "product_links" => "Commercial Gas Fryer - 3 Burner (LPG)",
        "product_links-href" => "https://www.agequipment.com.au/commercial-gas-fryer-3-burner-lpg./",
        "title" => "Commercial Gas Fryer - 3 Burner (LPG)",
        "mpn" => "AGGF-3-LPG",
        "rrp_price_inc" => "1,599.00",
        "stock" => "Out Of Stock",
        "desc" => "",
        "primary_img_large" => "",
        "breadcrumb_categories" => "",
        "stock_commentary" => "Pre-Order now for next shipment, arriving in several weeks",
        "next_page" => "",
        "next_page-href" => "",
        "rrp_price_ex" => "$1,453.64",
        "full_img" => "https://www.agequipment.com.au/pub/media/catalog/product/cache/10fe8d9df2d769f1f80c003a45c2fe8b/a/g/aggf-3-6_1.jpg",
        "grouped_src_3_loaded_only" => "",
        "grouped_src_3_loaded_only-src" => "",
        "ETA_label" => "",
        "pagination_gallery" => "",
        "div_href_img" => "",
        "manual" => "",
        "collected_images" => ""
    )
);

下面是我试图运行的循环,以便从第一个数组中获取$val1值,并将它们分配给第二个数组中的$row['mpn']

代码语言:javascript
复制
foreach ($new_stock_array as $key1 => $val1){
foreach ($all_rows as &$row) {

  $row['stock_count'] = '';

   if ($key1 == $row['mpn'] ){
     $row['stock_count'] = $val1;
   }
}
}

结果是$row['stock_count'] = '';被添加到$all_rows数组中,但是当存在这样的值时,来自$new_stock_array的股票值$val1无法分配给$row['stock_count']

不管是否相关-不清楚-但我也收到了通知:

注意:未定义的索引: /opt/lampp/htdocs/agequipment/reconsolidate_img_arrays.php中的mpn行322

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-28 07:09:06

我得到了

注意:第322行/opt/lampp/htdocs/agequipment/reconsolidate_img_arrays.php中未定义的索引: mpn

因为在实际数据中(相对于这里给出的最小数据摘录),有些数据没有被设置,因为数据有空白的数据单元格。

票数 0
EN

Stack Overflow用户

发布于 2022-08-28 18:12:34

引申是众所周知的引起问题,最好避免。

嵌套循环在外部循环的每一个迭代中的每一行上设置$row['stock_count'] = '';。这只会导致$new_stock_array中最后一个mpn的行具有不同的值。您只需要循环一次$all_rows,并使用该行的mpn查找值$new_stock_array[$row['mpn']]。检查以确保数组键在赋值之前存在。

代码语言:javascript
复制
foreach ($all_rows as $r_key => $row) {
  $all_rows[$r_key]['stock_count'] = (array_key_exists('mpn', $row) && array_key_exists($row['mpn'], $new_stock_array)) ?
    $new_stock_array[$row['mpn']] : '';
}

在行动中看到它:https://onlinephp.io/c/20ebc

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73516381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档