У меня есть массив, который мне нужно пройти. Вытащите все до «=», включая «=», а также определенные слова. Затем разделите оставшееся содержимое массива на ','.
Вот содержимое массива: $ rows ['role']
$rows['role'][0] = cn=Service Desk Customer,ou=Groups,dc=,dc=co,dc=uk $rows['role'][1] = cn=User,ou=Groups,dc=,dc=co,dc=uk $rows['role'][2] = cn=Site Administrator,ou=Groups,ou=Kiev,ou=Ukraine,ou=Euro-Med,dc=,dc=co,dc=uk $rows['role'][3] = cn=Agent Biometric,ou=Groups,ou=Tirana,ou=Albania,ou=Euro-Med,dc=,dc=co,dc=uk $rows['role'][4] = cn=Agent Welcome,ou=Groups,ou=Tripoli,ou=Libya,ou=Euro-Med,dc=,dc=co,dc=uk
После этого мне нужно отсортировать результаты в двух массивах, один для роли, включая Service Desk Customer, Site Administrator и т. Д., И один для местоположения, которое будет включать Триполи, Ливию, Албанию.
Я хотел бы получить строку или массив $ role, содержащий только такие элементы, как Service Desk Customer, Site Administrator и т. Д. а затем строку $ location или массив, содержащий всю информацию о местоположении.
Вот что я до сих пор. Я могу удалить все, что я хочу удалить до сих пор. Единственная проблема, с которой я столкнулся, – это вытащить элементы, начиная с cn = до переменной $ role (желательно с cn = удален) и ou = до переменной $ loc.
$removes = array( 'dc=','ou=Groups','cn=User','dc=co','dc=uk'); $rows[$i] = array( 'picture' => $jpeg, 'first' => $info[$i]["givenname"][0], 'last' => $info[$i]["sn"][0], 'mail' => $info[$i]["mail"][0], //'role' => $info[$i]["memberof"][0], ); foreach($info[$i]['memberof'] as $key => $value){ $replace = str_replace($removes,'',$value); $rows[$i]['role'][$key] = $replace; } array_filter($rows[$i]['role']); print_r ($rows[$i]['role']); } ldap_close($ds)
Вы можете попробовать следующее:
$result = array_map(function ($val) { return substr($val,3, strpos($val, ',') - 3 ); }, $rows['role']); print_r($result);
Вы можете использовать:
foreach ($rows['role'] as $r) { print_r ( explode(',', preg_replace('/(^|,)\K[^=]*=/', '', $r)) ); }
Для первых двух строк он дает следующий результат:
Array ( [0] => Service Desk Customer [1] => Groups [2] => domain [3] => co [4] => uk ) Array ( [0] => User [1] => Groups [2] => domain [3] => co [4] => uk )