Php 当表单提交的项目的类别发生更改时,在foreach循环中添加标题

Php 当表单提交的项目的类别发生更改时,在foreach循环中添加标题,php,foreach,Php,Foreach,我收集具有包含字符串“object_id”和User_id(int)的字段名的POST变量。 我从字段名中提取用户ID 在foreach循环中,每当$object\u ds['transaction\u type']更改值时,我都需要生成标题。 但仅在循环中第一次出现之前 我设法在第一行实现了这一点,但我不知道如何在$n>1的情况下解决它 有小费吗?塔克斯 $addonFields = array_intersect_key($_POST, array_flip(preg_grep('/o

我收集具有包含字符串“object_id”和User_id(int)的字段名的POST变量。 我从字段名中提取用户ID

在foreach循环中,每当$object\u ds['transaction\u type']更改值时,我都需要生成标题。 但仅在循环中第一次出现之前

我设法在第一行实现了这一点,但我不知道如何在$n>1的情况下解决它

有小费吗?塔克斯


  $addonFields = array_intersect_key($_POST, array_flip(preg_grep('/object_id/', array_keys($_POST))));
echo "Anzahl User: ".count($addonFields)."<br>";


$mail_subj_customer = "New! Business Opportunities Pharma & Healthcare";

foreach ($addonFields AS $item=>$value){
echo "Number of Objects: ".count($value)."<br>";


$user_id = preg_replace('/[^0-9]/', '', $item);  // Extract User ID from $item

$user_ds = holeDS( 'pmcts_users', 'id', $user_id ); // get DataRow from pmcts_users where id=$user_id



$n=0;
foreach ($value AS $values){
$n++;
$object_ds = holeDS( 'pmcts_unternehmen_produkte', 'object_id', $values ); // get Product DataRow
if ($n==1 && $object_ds['transaction_type']=="Company Sale" ){
$current_trans_type = "Company Sale";
echo "<h2>I. Business Opportunities -Company Sales</h2>";
}
if ($n==1 && $object_ds['transaction_type'] == "Asset Sale"){
$current_trans_type = "Asset Sale";
echo "<h2>II. Business Opportunities - Asset Sales</h2>";
}
if ($n==1 && $object_ds['transaction_type'] == "Licensing Opportunity"){
$current_trans_type = "Licensing Opportunity";
echo "<h2>II. Business Opportunities - Licensing</h2>";
}
echo print_r($values)." - $user_ds[email] - $object_ds[transaction_type]<br>";

}
} 

$addonfelds=array\u intersect\u key($\u POST,array\u flip(preg\u grep('/object\u id/',array\u key($\u POST)));
echo“Anzahl用户:”.count($addonFields)。“
”; $mail_subc_customer=“新!商机制药与医疗”; foreach($addonFields作为$item=>$value){ 回显“对象数:”.count($value)。“
”; $user\u id=preg\u replace(“/[^0-9]/”,“$item);//从$item中提取用户id $user\u ds=holeDS('pmcts\u users','id',$user\u id);//从pmcts\u用户获取数据行,其中id=$user\u id $n=0; foreach($value作为$value){ $n++; $object\u ds=holeDS('pmcts\u unternehmen\u produkte','object\u id',$values);//获取产品数据行 如果($n==1&&$object\u ds['transaction\u type']==“公司销售”){ $current\u trans\u type=“公司销售”; 回声“一、商机——公司销售”; } 如果($n==1&&$object\u ds['transaction\u type']==“资产销售”){ $current\u trans\u type=“资产销售”; echo“二、商机——资产销售”; } 如果($n==1&&$object\u ds['transaction\u type']==“许可机会”){ $current\u trans\u type=“许可机会”; echo“二、商业机会-许可证”; } echo print_r($values)。“-$user_ds[email]-$object_ds[transaction_type]
”; } }
它为每个用户生成这样的对象列表输出
用户号码:8
对象编号:7
一、商机——公司销售
22891 - user@customer.com-公司销售
20071 - user@customer.com-公司销售
24591 - user@customer.com-公司销售
(但这里需要另一个标题“资产销售”)
24531 - user@customer.com-资产出售
20491 - user@customer.com-资产出售
(但这里需要另一个标题“许可证”)
24621 - user@customer.com-发牌机会
24651 - user@customer.com-发牌机会

首先考虑填充数组,然后再遍历它。比如:

$headlines = array(
        "Company Sale" => "I. Business Opportunities -Company Sales",
        "Asset Sale" => "II. Business Opportunities - Asset Sales",
        "Licensing Opportunity" => "II. Business Opportunities - Licensing" 
);

$allData = array();
foreach ($addonFields AS $item=>$value){
  $user_id = preg_replace('/[^0-9]/', '', $item);  // Extract User ID from $item
  $user_ds = holeDS( 'pmcts_users', 'id', $user_id ); // get DataRow from pmcts_users where id=$user_id
  foreach ($value AS $values){
     $object_ds = holeDS( 'pmcts_unternehmen_produkte', 'object_id', $values ); 
     if (!isset($allData[$object_ds['transaction_type']])) {
        $allData[$object_ds['transaction_type']] = array();
     }
     $allData[$object_ds['transaction_type']][] = print_r($values, 1)." - $user_ds[email] ;
  }
}
然后显示:

foreach ($allData as $transaction_type => $users) {
  echo "<h2>" . $headlines[$transaction_type] . "</h2>";
  foreach ($users as $user) {
    echo "<div>" . $user . " - " . $transaction_type . "</div>";
  }
}
foreach($allData作为$transaction\u type=>$users){
回显“$headlines[$transaction_type]”;
foreach($users作为$user){
回显“$user.”-“$transaction_type.”;
}
}

我获得了每个用户的标题列表,如下所示:

     $addonFields = array_intersect_key($_POST, array_flip(preg_grep('/object_id/', array_keys($_POST))));
    echo "Anzahl User: ".count($addonFields)."<br>";
    
    
    $mail_subj_customer = "New! Business Opportunities Pharma & Healthcare";
    
    $headlines = array(
            "Company Sale" => "I. Business Opportunities - Company Sales",
            "Asset Sale" => "II. Business Opportunities - Asset Sales",
            "Licensing Opportunity" => "III. Business Opportunities - Licensing" 
    );
    
    foreach ($addonFields AS $item=>$value){
    echo "Number of Objects: ".count($value)."<br>";
    
    $count_objects = count($value);
    
    
    $user_id = preg_replace('/[^0-9]/', '', $item);  // Extract User ID from $item
    
    $user_ds = holeDS( 'pmcts_users', 'id', $user_id ); // get DataRow from pmcts_users where id=$user_id
    
    
    $flag=1;
    $flag2=1;
    $flag3=1;
    $n=0;
    foreach ($value AS $values){
    $n++;
    $object_ds = holeDS( 'pmcts_unternehmen_produkte', 'object_id', $values ); // get Product DataRow
    
    if ($object_ds['transaction_type']=='Company Sale' && $flag==1) {
        echo "<h3>I. Business Opportunities - Company Sales</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";    
        $flag=0;
    }
    elseif ($object_ds['transaction_type']=='Company Sale' && $flag==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag=0;
    }
    
    if ($object_ds['transaction_type']=='Asset Sale' && $flag2==1){
        echo "<h3>II. Business Opportunities - Asset Sales</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
        $flag2=0;
    }
    elseif ($object_ds['transaction_type']=='Asset Sale' && $flag2==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag2=0;
    }
    
    
    if ($object_ds['transaction_type']=='Licensing Opportunity' && $flag3==1){
        echo "<h3>III. Business Opportunities - Licensing</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
        $flag3=0;
    }
    
    elseif ($object_ds['transaction_type']=='Licensing Opportunity' && $flag3==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag3=0;
    }
    
    
    }
    
    
    }
$addonFields=array\u intersect\u key($\u POST,array\u flip(preg\u grep('/object\u id/',array\u key($\u POST)));
echo“Anzahl用户:”.count($addonFields)。“
”; $mail_subc_customer=“新!商机制药与医疗”; $headlines=数组( “公司销售”=>“一、商机-公司销售”, “资产销售”=>“二、商机-资产销售”, “授权机会”=>“三、业务机会-授权” ); foreach($addonFields作为$item=>$value){ 回显“对象数:”.count($value)。“
”; $count_objects=count($value); $user\u id=preg\u replace(“/[^0-9]/”,“$item);//从$item中提取用户id $user\u ds=holeDS('pmcts\u users','id',$user\u id);//从pmcts\u用户获取数据行,其中id=$user\u id $flag=1; $2=1; $flag3=1; $n=0; foreach($value作为$value){ $n++; $object\u ds=holeDS('pmcts\u unternehmen\u produkte','object\u id',$values);//获取产品数据行 如果($object\u ds['transaction\u type']=='Company Sale'&&$flag==1){ 回声“一、商机——公司销售”; echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag=0; } elseif($object\u ds['transaction\u type']=='Company Sale'&&$flag==0){ echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag=0; } 如果($object_ds['transaction_type']=='Asset Sale'&&$flag2==1){ echo“二、商机——资产销售”; echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag2=0; } elseif($object\u ds['transaction\u type']=='Asset Sale'&&$flag2==0){ echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag2=0; } if($object_ds['transaction_type']=='Licensing Opportunity'&&$flag3==1){ echo“三、商业机会-许可证”; echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag3=0; } elseif($object\u ds['transaction\u type']=='Licensing Opportunity'&&$flag3==0){ echo$n.'.print_r($values,true)。“-$user_ds[email]-$object_ds[transaction_type]
”; $flag3=0; } } }

也许这对有同样问题的人有帮助。

谢谢Kinglish,这很好用。谢谢Kinglish,这很好用。但是,它会循环遍历所有用户和对象,并添加标题。我需要改变什么才能循环浏览所有用户和对象,并按每个用户添加标题。例如:“I.商业机会-公司销售23456-user1@company1.com-公司销售23458-user1@company1.com-公司销售二。商业机会-资产出售23456-user1@company1.com-资产出售23458-user1@company1.com-资产出售二。商业机会-许可23452-user1@company1.com-执照持有人```
     $addonFields = array_intersect_key($_POST, array_flip(preg_grep('/object_id/', array_keys($_POST))));
    echo "Anzahl User: ".count($addonFields)."<br>";
    
    
    $mail_subj_customer = "New! Business Opportunities Pharma & Healthcare";
    
    $headlines = array(
            "Company Sale" => "I. Business Opportunities - Company Sales",
            "Asset Sale" => "II. Business Opportunities - Asset Sales",
            "Licensing Opportunity" => "III. Business Opportunities - Licensing" 
    );
    
    foreach ($addonFields AS $item=>$value){
    echo "Number of Objects: ".count($value)."<br>";
    
    $count_objects = count($value);
    
    
    $user_id = preg_replace('/[^0-9]/', '', $item);  // Extract User ID from $item
    
    $user_ds = holeDS( 'pmcts_users', 'id', $user_id ); // get DataRow from pmcts_users where id=$user_id
    
    
    $flag=1;
    $flag2=1;
    $flag3=1;
    $n=0;
    foreach ($value AS $values){
    $n++;
    $object_ds = holeDS( 'pmcts_unternehmen_produkte', 'object_id', $values ); // get Product DataRow
    
    if ($object_ds['transaction_type']=='Company Sale' && $flag==1) {
        echo "<h3>I. Business Opportunities - Company Sales</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";    
        $flag=0;
    }
    elseif ($object_ds['transaction_type']=='Company Sale' && $flag==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag=0;
    }
    
    if ($object_ds['transaction_type']=='Asset Sale' && $flag2==1){
        echo "<h3>II. Business Opportunities - Asset Sales</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
        $flag2=0;
    }
    elseif ($object_ds['transaction_type']=='Asset Sale' && $flag2==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag2=0;
    }
    
    
    if ($object_ds['transaction_type']=='Licensing Opportunity' && $flag3==1){
        echo "<h3>III. Business Opportunities - Licensing</h3>";
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
        $flag3=0;
    }
    
    elseif ($object_ds['transaction_type']=='Licensing Opportunity' && $flag3==0) {
        echo $n.' '.print_r($values, true)." - $user_ds[email] - $object_ds[transaction_type]<br>";
            $flag3=0;
    }
    
    
    }
    
    
    }