php-删除多个数组中多个项目的句点后的字符

php-删除多个数组中多个项目的句点后的字符,php,arrays,Php,Arrays,我有一个名为$dbs的对象,它包含多个数组,其中包含多个项。我试图删除每个项目句点后的字符 PHP 当我做一些像 <?php $dbNew = array(); foreach ($dbs as $db) { $dbNew[] = substr($db, 0, (strlen($db)) - (strlen(strrchr($db, '.')))); } print "<pre>"; print_r($dbNew); print "</pre&

我有一个名为$dbs的对象,它包含多个数组,其中包含多个项。我试图删除每个项目句点后的字符

PHP

当我做一些像

 <?php
 $dbNew = array();
 foreach ($dbs as $db) {
       $dbNew[] = substr($db, 0, (strlen($db)) - (strlen(strrchr($db, '.'))));
 }
 print "<pre>";
 print_r($dbNew);
 print "</pre>";
 ?>
$db=array();
foreach($dbs作为$db){
$db=substr($db,0,(strlen($db))-(strlen(strrchr($db,')));
打印“”;
印刷费(db);
打印“”;
}

我可以删除句点后的字符,但我只能在foreach循环中从每个数组返回项目。当我在循环外打印_r()$db时,我只能从每个数组返回第一项。我做错了什么?是否可以将每个数组中的每个项目放入一个新数组中,以便在循环外部使用?

如果每次循环时都要覆盖数组,请尝试将巡更代码更改为:

<?php 
$dbs = array(array(1 => 'FMServer_Sample.fmp12'), array(1 => 'GolfAudit4.fmp12', 2 => 'iCDS.fmp12', 3 => 'rawhide.fmp12'), array (1 => 'Assets.fmp12', 2 => 'PassTracker.fmp12', 3 => 'Scanner.fmp12'), array(1 => 'prima.fmp12'), array(1 => 'CNAC_db.fmp12'));

$arrNewDb = array();
foreach ($dbs as $db) {
   foreach ($db as $val) {
     $arrDb = explode(".", $val);
     $arrNewDb[] = $arrDb[0];
   }
}

print "<pre>";
print_r($arrNewDb);
print "</pre>";
?>

您可以使用创建新阵列:

试试看:



您是否尝试过使用引用
&
foreach($dbs as&$db)
上?您的输出不应该只是一个变量。是否可以将每个数组中的项目放入一个新数组,可能是字符串?我不明白您想要什么,您能提供所需的输出吗?
$db = array();
foreach ($dbs as $db) {
     $db = substr($db, 0, (strlen($db)) - (strlen(strrchr($db, '.'))));
     print "<pre>";
     print_r($db);
     print "</pre>";
}
 <?php
 $dbNew = array();
 foreach ($dbs as $db) {
       $dbNew[] = substr($db, 0, (strlen($db)) - (strlen(strrchr($db, '.'))));
 }
 print "<pre>";
 print_r($dbNew);
 print "</pre>";
 ?>
$dbs = array_map(function($db) {
    return strtok($db, '.'); // only use first portion
}, $dbs);
<?php 
$dbs = array(array(1 => 'FMServer_Sample.fmp12'), array(1 => 'GolfAudit4.fmp12', 2 => 'iCDS.fmp12', 3 => 'rawhide.fmp12'), array (1 => 'Assets.fmp12', 2 => 'PassTracker.fmp12', 3 => 'Scanner.fmp12'), array(1 => 'prima.fmp12'), array(1 => 'CNAC_db.fmp12'));

$arrNewDb = array();
foreach ($dbs as $db) {
   foreach ($db as $val) {
     $arrDb = explode(".", $val);
     $arrNewDb[] = $arrDb[0];
   }
}

print "<pre>";
print_r($arrNewDb);
print "</pre>";
?>