【问题标题】:How can I combine or merge the results of a string into an other string (implode included)如何将一个字符串的结果合并或合并到另一个字符串中(包括内爆)
【发布时间】:2020-03-13 19:30:38
【问题描述】:

所以我使用 implode 将 POST 方法的值存储在变量中...

$xaraktiristika = implode(', ', $_POST['tlxar']);

这给了我这个字符串的结果:

Sugar, Sugar-Type, Decaf, Quantity, Extra Syrup

还有第二个:

  $choices = implode(', ', $_POST['epiloges_xar']);

这给了我这个字符串的结果:

Medium-sugar, Brown, Yes, Double, No

现在我想将它们组合起来,以便将它们插入到我的数据库中。

我的问题是我可以将这两者结合起来,结果会是这样的

Sugar:Medium-sugar, Sugar-Type:Brown, Decaf:Yes etc.

或者我应该以不同的方式来做吗?如果我的问题没有多大意义,我深表歉意,但我仍在学习所有这些东西,而且英语不是我的母语。呵呵

如果有帮助,这里是代码:

<?php

if (isset($_POST["btn1"])) {
	
$xaraktiristika = implode(', ', $_POST['tlxar']);

echo $xaraktiristika;


echo"<br>";


  $epiloges_string = implode(', ', $_POST['epiloges_xar']);

	
  
 
  

$s="insert into kalathi_proion(id,
								id_session,
									id_proion,
										posothta,
											poso,
												id_xarakthristikou_proiontos,
													timi_xarakt,
														timi_euro_xarakt
															) values

(NULL,
	'$sid',
		$_POST[idp],
			$_POST[quantity],
				$_POST[timi],
					'$xaraktiristika',
						 '$choices',
							$_POST[tx]
								)";

mysqli_query($conn,$s);



echo $s;
	
}


 else 
	 
{    
    echo "Error";
}



?>




  <?php 

echo " 

<div class='container pp1'>



		<div class=header1>
		<h4>ΚΑΦΕΔΕΣ</h4>
		</div>
		
		
		";
	
	

$s="SELECT proionta.id as idproion, proionta.titlos as proionta_title,proionta.perigrafh as proionta_desc,proionta.timh as proionta_price
FROM proionta,katigories

WHERE proionta.id_katigorias=1
AND katigories.id=proionta.id_katigorias ";



$tb=mysqli_query($conn,$s);
	
	
	
			while($row=mysqli_fetch_array($tb))
			{
				echo "
				
							
							<div class=p1>
								<li><h4>$row[proionta_title]</h4> <h4 class=price id=val>$row[proionta_price]€</h4></li>
								<li><button class=btn id=btnShowModal data-toggle=modal data-target=#myModal$row[idproion]>Προσθήκη</button></li>
									<p>$row[proionta_desc]</p>
									<hr>
							</div>";
							
							
							
							
							
							
							
						echo"	<!------------------------------------------------MODAL----------------------------------------------->";



 echo" <div class='modal fade' id='myModal$row[idproion]' role='dialog'> <!-------modal start-------------->
  
		<div class='modal-dialog modal-lg'>
	
			<div class='modal-content'> <!-------modal content start-------------->
	  
					<div class='modal-header'> 					<!-------modal header-------------->
					
					  <button type='button' class='close' data-dismiss='modal$row[idproion]'>&times;</button>
					  <h4 class='modal-title'>Επιλογές</h4>
					  
					</div>										<!-------end of modal header-------------->
		
		
		
					<div class='modal-body'>";
		
						$s2="SELECT *,xarakthristika.id as idxarakthristikou,xarakthristika_proiontwn.id_xarakthristika as idxappr 
		
							FROM  xarakthristika_proiontwn,xarakthristika
							
		
							WHERE xarakthristika_proiontwn.id_xarakthristika = xarakthristika.id
		
							AND xarakthristika_proiontwn.id_proionta= $row[idproion]";
		
							$tb2=mysqli_query($conn,$s2);
		
						
		
														echo "

							<form action='paragelia.php' method=post> 
							
		
								<input type=hidden value=$row[idproion] name=idp>  <!--id proiontos-->
							
								<input type='hidden' name=timi value='$row[proionta_price]'>		<!--timh proiontos-->		
							
								
							";
				
		
									while($row2=mysqli_fetch_array($tb2))
									{
						
					echo "
									<input type=hidden value='$row2[idxarakthristikou]' name=idpx> <!-- xarakthristika id -->
					
									<input type='hidden' name=tlxar[] value='$row2[titlos]'>
					";			
					
					echo"        	<label for='epiloges'>$row2[titlos]</label>
								
										<select id='epiloges' name=epiloges_xar[]>";
										
										
									$s3="SELECT * 
									
									FROM times_xarakthristikwn,xarakthristika
									
									WHERE times_xarakthristikwn.id_xarakthristikou=$row2[idxappr] 
									AND xarakthristika.id=$row2[idxappr] 
									";
										$tb3=mysqli_query($conn,$s3);
								
								
								
								
								
										while($row3=mysqli_fetch_array($tb3))
										{
										
								
					echo"	            <option><span>$row3[onoma]</span></option><span style='font-size:8px;'>($row3[timh])</span>
					
										
											
					";					
										}
											
											
											
					echo"						
									</select>
									
									<input type=hidden value='$row3[timh]' name=tx> <!-- timh a3ia epiloghs xarakt-->	
									<br>
					";
									
									
									
									}	
							
		
		
							echo "	
							<div class='quantity'><!-----quantity start----->
							<h4>Ποσότητα:</h4>
							<input type='number' value='1' min='0' max='1000' step='1' id='qnt' name='quantity'/>

							</div> <!-----quantity end----->
		
		
		
							<div class='comments'><!-----comments start----->
								<p>Σχόλια</p>
								<textarea rows='4' cols='50'> </textarea>
							</div>      <!-----comments end----->";
		
		echo "
		

						
						
					</div><!-----end of modal body----->
		
		
		

				<div class='modal-footer'>
					<button type='submit' class='btn btn-primary' name='btn1' >Προσθήκη1</button>
				</div>
    
						

				
					</form>		
					";
	


  
echo"

				
			</div><!-------modal content end-------------->
	</div> 
</div> 
<!------------------------------------------------END OF MODAL----------------------------------------------->
 ";




							
											
}	

echo"</div>";
  ?>





  <?php
include "down.php";
?>

我想将 $xarakthristika 和 $choices 组合在一个变量中,并将它们插入到数据库中,就像我在文章开头所说的那样。

【问题讨论】:

  • 你确定数组的索引总是匹配的吗?
  • 你想用输出做什么,看起来有点像JSON。
  • 我把代码贴出来以防万一

标签: php arrays string implode


【解决方案1】:

说明

这个答案启动了一个计数器(count = 0,因为数组从 0 开始)并使用 PHP 的 foreach 循环,我们使用 $count 变量循环遍历 $xaraktiristika 数组中的值。在此过程中,我们以请求的格式将当前值添加到 $choice 数组(分解为 $c 的各个部分)中。将各个部分重新加在一起后,$count 会增加 1,并且该过程会继续进行,直到使用 $choice 中的所有值。

<?php
$xaraktiristika = array("Sugar", "Sugar-Type", "Decaf", "Quantity", "Extra Syrup");
$choice = array("Medium-sugar", "Brown", "Yes", "Double", "No");
$count = 0;
foreach ($choice as $c) {
  echo $xaraktiristika[$count] . ":" . $c . ", ";
  $count = $count + 1;
}
?>

【讨论】:

    【解决方案2】:

    使用array_map你可以简单地做到这一点

    $_POST['tlxar'] = array("Sugar", "Sugar-Type", "Decaf", "Quantity", "Extra Syrup");
    $_POST['epiloges_xar'] = array("Medium-sugar", "Brown", "Yes", "Double", "No");
    
    echo implode(', ', array_map(function ($a, $b) {
      return $a.':'.$b;
    }, $_POST['tlxar'], $_POST['epiloges_xar']));
    

    输出:

    Sugar:Medium-sugar, Sugar-Type:Brown, Decaf:Yes, Quantity:Double, Extra Syrup:No
    

    【讨论】:

      猜你喜欢
      • 2022-08-12
      • 2022-07-01
      • 2020-01-08
      • 2017-10-25
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多