Php 关联数组中的字符串搜索

Php 关联数组中的字符串搜索,php,associative-array,Php,Associative Array,我有一个关联数组,我需要搜索数组中的“T”,使用php我需要数组中所有以“T”字符串开头的部分。你有什么想法吗 谢谢大家 最简单的方法是遍历数组(假设它是以$to_search_arr为单位的),因此您有如下内容: $new_arr = array(); foreach ($json2ary as $key => $value) { if ($value[0] == 'T') { $new_arr[$key] = $value; } } print_r($new_arr);

我有一个关联数组,我需要搜索数组中的“T”,使用php我需要数组中所有以“T”字符串开头的部分。你有什么想法吗


谢谢大家

最简单的方法是遍历数组(假设它是以$to_search_arr为单位的),因此您有如下内容:

$new_arr = array();
foreach ($json2ary as $key => $value) {
  if ($value[0] == 'T') {
    $new_arr[$key] = $value;
  }
}
print_r($new_arr);
$sampleArray = array(
    'locations' => array(
        'loc' => array(
            'category' => array( '0' => 'Type'),
            'name' => 'TNik', //name starts with T
            'address' => 'St. 1'),
        '0002' => array(
            'category' => array('0' => 'Type'),
            'name' => 'Paul',
            'address' => 'St. 2')));
$valuesStartingWithT=array();
foreach ($sampleArray as $sample) {
    foreach ($sample as $value) {
         if ($value['name'][0] == 'T') {
    $valuesStartingWithT[] = $value['name'];
  }

    }
}
print_r($valuesStartingWithT);
编辑: 或者正如Shikiryu所指出的,应该是这样

  if ($value[0] == 'T') {

如果这就是你想要的。

你可以这样做:

$new_arr = array();
foreach ($json2ary as $key => $value) {
  if ($value[0] == 'T') {
    $new_arr[$key] = $value;
  }
}
print_r($new_arr);
$sampleArray = array(
    'locations' => array(
        'loc' => array(
            'category' => array( '0' => 'Type'),
            'name' => 'TNik', //name starts with T
            'address' => 'St. 1'),
        '0002' => array(
            'category' => array('0' => 'Type'),
            'name' => 'Paul',
            'address' => 'St. 2')));
$valuesStartingWithT=array();
foreach ($sampleArray as $sample) {
    foreach ($sample as $value) {
         if ($value['name'][0] == 'T') {
    $valuesStartingWithT[] = $value['name'];
  }

    }
}
print_r($valuesStartingWithT);
应输出:

Array ( [0] => TNik ) 

您是在搜索键还是值?我搜索所有值都以T@nicolanik“你试过什么?”意思是“向我们展示你写的代码,以证明你在这方面付出了一些努力”,而不是“给出模糊的一行注释。”或
if($value[0]='T')){
如果他在寻找以“T”开头的值。很好,将其编辑到答案中。对不起,在我的示例中,不起作用,只返回结果数组。我还将返回搜索字符串的所有匹配项。你能粘贴你的代码吗?是的,例如我使用$json2ary=(json_decode($file,true));将文件转换为关联数组。我需要在所有数组中搜索以T开头的所有值,以了解他是否要求关联数组。哦…等等…在关联数组中是。但这只返回数组,并通知注意未定义的偏移量,如first Waynncode@Shikiryu它是否是他要求的关联数组并不重要仅在值中搜索。@Songo cough阅读问题标题cough。另外,您的
$valuessStartingWithT
将丢失其密钥,我们不知道这对op是否重要。他编辑以指定“值”在我们问过他之后,也许我们也应该问这个;)@shikiryu是的,我读了问题标题:D,代码将适用于关联数组或普通数组:D如果他需要数组中的其他信息,我将修改我的代码以添加新的要求。为什么在最不需要的情况下让事情变得复杂:P…我仍然承认我的
$samples
数组应该是一个关联数组,以匹配他的问题。