Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Loops - Fatal编程技术网

如何循环php数组

如何循环php数组,php,arrays,loops,Php,Arrays,Loops,这是我的产品阵列- Array ( [0] => Array ( [0] => 'Product1' [1] => [2] => [3] => [4] => 'Product2' [5] => [6] => [7] =>

这是我的
产品
阵列-

Array
(
    [0] => Array
        (
            [0] => 'Product1'
            [1] => 
            [2] => 
            [3] => 
            [4] => 'Product2'
            [5] => 
            [6] => 
            [7] => 'Product3'
            [8] => 'Product4'
            [9] => 'Product5'
        )
)
这是产品的
类别
数组-

Array
(
    [0] => Array
        (
            [0] => 'cat1'
            [1] => 'cat2'
            [2] => 'cat3'
            [3] => 'cat4'
            [4] => 'cat5'
            [5] => 'cat6'
            [6] => 'cat7'
            [7] => 
            [8] => 
            [9] => 
        )
)
此格式中需要的最终输出-

Array
(
'Product1' => Array(
           [0] => 'cat1',
           [1] => 'cat2',
           [2] => 'cat1',
           [3] => 'cat4'
           ),
'Product2' => Array(
           [0] => 'cat5',
           [1] => 'cat6',
           [2] => 'cat7'
           ),
'Product3' => Array(
           [0] => 'No Cat'
           ),
'Product4' => Array(
           [0] => 'No Cat'
           ),
'Product5' => Array(
           [0] => 'No Cat',
           )
)
我试过了,但没有形成正确的输出--

$newarr=array();
foreach($productData[0]作为$arr1)
{
如果($arr1!='')
{
foreach($catData[0]作为$catnames){
$newarr[$arr1]=数组($compnames);
}
}
}
回声“;印刷费($newarr);
如果count($productData[0])==count($catData[0]),则可以使用for循环。 如果$productData[0][0]始终包含产品名称,则此操作应该有效

$newarr = array();
foreach( $productData[0] as $key => $product )
{

    if( $product != '' )
    {
        $newarr[$product] = array();
        $currentProduct = $product;

    }

    if( isset($catData[0][$key]) && ($catData[0][$key] != '') )
    {
        $newarr[$currentProduct][] = $catData[0][$key];
    }
    else
    {
         $newarr[$currentProduct][] = 'No Cat';
    }

}
echo "<pre>";print_r($newarr);
如果count($productData[0])==count($catData[0]),则可以使用for循环。
如果$productData[0][0]始终包含产品名称,则此操作应该有效

$newarr = array();
foreach( $productData[0] as $key => $product )
{

    if( $product != '' )
    {
        $newarr[$product] = array();
        $currentProduct = $product;

    }

    if( isset($catData[0][$key]) && ($catData[0][$key] != '') )
    {
        $newarr[$currentProduct][] = $catData[0][$key];
    }
    else
    {
         $newarr[$currentProduct][] = 'No Cat';
    }

}
echo "<pre>";print_r($newarr);
试试这个

$newarr=array();
foreach($productData[0]作为$key=>$product)
{
如果($product!='')
{
$newarr[$product]=array();
$currentProduct=$product;
}
如果(isset($catData[0][$key])&&($catData[0][$key]!=“”))
{
$newarr[$currentProduct][]=$catData[0][$key];
}
其他的
{
$newarr[$currentProduct][]=“无Cat”;
}
}
回声“;印刷费($newarr);
试试这个

$newarr=array();
foreach($productData[0]作为$key=>$product)
{
如果($product!='')
{
$newarr[$product]=array();
$currentProduct=$product;
}
如果(isset($catData[0][$key])&&($catData[0][$key]!=“”))
{
$newarr[$currentProduct][]=$catData[0][$key];
}
其他的
{
$newarr[$currentProduct][]=“无Cat”;
}
}
回声“;印刷费($newarr);


合并应如何进行?它背后的逻辑是什么?您是如何使用这些阵列的?请尝试此$newarr[$arr1][]=$compnames@Dasun逻辑是-产品数组在类别数组上迭代并填充类别,直到下一个产品名称相遇。如果它是一个密钥并迭代Angain,则该数据是否从数据库中提取?这是一个疯狂的处境。我只想活下去。合并应该怎么做?它背后的逻辑是什么?您是如何使用这些阵列的?请尝试此$newarr[$arr1][]=$compnames@Dasun逻辑是-产品数组在类别数组上迭代并填充类别,直到下一个产品名称相遇。如果它是一个密钥并迭代Angain,则该数据是否从数据库中提取?这是一个疯狂的处境。我只想活着。是的,第一个将始终包含一个名称..thx a lot+1和绿色勾选:)没问题!我刚刚意识到我没有处理“No Cat”。yes first将始终包含一个名称..thx a lot+1和绿色勾号:)没问题!我刚刚意识到我没有处理“无猫”。Thx bro用于另一个解决方案+1:)此解决方案也将处理“无猫”。:)应为$newarr[$currentProduct][]=$catData[0][$key];另请注意,isset(“”)将返回true。如果从excel导入空字段,则这些字段可能是空字符串,而不是null或false。已修复。。感谢您的反馈:)Thx bro用于另一个解决方案+1:)此解决方案还将处理“无Cat”。:)应为$newarr[$currentProduct][]=$catData[0][$key];另请注意,isset(“”)将返回true。如果从excel导入空字段,则这些字段可能是空字符串,而不是null或false。已修复。。感谢您的反馈:)
$newarr = array();
foreach( $productData[0] as $key => $product )
{

    if( $product != '' )
    {
        $newarr[$product] = array();
        $currentProduct = $product;

    }

    if( isset($catData[0][$key]) && ($catData[0][$key] != '') )
    {
        $newarr[$currentProduct][] = $catData[0][$key];
    }
    else
    {
         $newarr[$currentProduct][] = 'No Cat';
    }

}
echo "<pre>";print_r($newarr);